Tho*_*s O 10 sql database mapping geolocation openstreetmap
我正在寻找有关存储地图的理想数据库或数据结构的建议.从本质上讲,地图由道路,路径等"道路"组成.道路包含节点(具有纬度和经度坐标,有时还有高度).
任何此类数据库或结构:
应该能够快速定位边界框中的所有节点(毫秒)
可选地,当大量节点在边界框中而不是少量节点时,或者如果边界框很大时,不应该显着减慢速度
应该能够找到直接连接的节点:例如,连接两种方式的节点
可以只读
应该是紧凑的(避免浪费空间) - 我希望将英国的地图放入不到1 GB的范围内.我有一个卫星导航,在SD卡上有大约800 MB的空间.
我最初想的是四叉树存储方式.但是快速实现很棘手,并且它们不适用于单个节点; 所有节点都可以放在最小的bbox中.
(我故意使用相同的Open Street Map术语,因为我打算使用那些数据.)
我建议在PostGIS 1.5中使用地理类型,因为它适合您的需求,但是在嵌入式设备上使用类似的东西,我唯一关心的就是内存使用情况。
我使用Java中的非GIS数据库(firebird)构建了一些模糊的相关内容,并且该性能对于在边界框内检索点已经足够了(尽管需要精美的SQL,而PostGIS却不是这种情况)。
PostGIS可能是最佳选择.注意:PostGIS 是带有地理扩展的PostgreSQL.你真的安装postgres,然后运行各种脚本,添加地理功能和类型.
请参阅有关PostGIS的OpenStreetMap信息.您可以使用osm2pgsql将OpenStreetMap行星文件/行星提取加载到PostGIS中,这是在运行Mapnik渲染器的OpenStreetMap磁贴服务器上完成的操作.然而...
OpenStreetMap数据还有一个更原始的数据库模式(表称为"节点"和"方式"等).这是主要的 OpenStreetMap数据库服务器用于存储其地理数据并允许通过API进行编辑的内容.在空间索引等方面,这并不是那么聪明,但又好又简单.您可以通过在rails代码上安装OpenStreetMap API/website ruby来以此格式创建数据库.这是设置数据库模式的最新版本 (由rails迁移定义)的最可靠方法.之后,您可以运行渗透工具来填充数据库.
| 归档时间: |
|
| 查看次数: |
5721 次 |
| 最近记录: |