postgresql - 如何在 postGIS 中存储路线图?

标签 postgresql gis openstreetmap postgis

如何将 OSM 路线图导出到 postGIS 数据库中? 另外,如果我有交叉路口的坐标,我可以得到我需要的路段吗?

如有任何帮助,我们将不胜感激。 谢谢!

最佳答案

您可以使用 osm2pgsql工具,支持osm xml (*.osm)。

基本用法:

osm2pgsql -d your_geo_database your-osm-data.osm.bz2

此命令将 your-osm-data.osm.bz2 文件导入到 your_geo_database 数据库中。

数据库必须存在并且必须加载 postgis 扩展。

是的,您可以通过使用 --bbox 选项和逗号分隔的坐标指定要导入的边界框来仅导入一部分 osm 数据,如 minlon、minlat、maxlon、maxlat,即:

osm2pgsql -l -d your_geo_database --boxx -0.5,51.25,0.5,51.75 you-osm-data.osm.bz2

你不能用一个点来指定你需要的路段,但是你可以围绕这个点构建一个边界框,即一个100m X 100m的正方形

类型

osm2pgsql --help

查看所有选项。

同样重要的选项是:

-l : 以纬度和经度存储数据 (srid 4326)

-a : 将 OSM 文件添加到数据库中而不删除现有数据。

-d -H -U -W -P:数据库连接选项:数据库名称、主机、用户名、密码、端口。

如果您的 osm 文件太大,您可能需要使用一些优化内存使用的选项,即:--cache-strategy--slim--unlogged

关于postgresql - 如何在 postGIS 中存储路线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922154/

相关文章:

ruby-on-rails - rails : Copy data for specific tables between databases/environments

postgresql - 如何编写 Sql 查询以在计算 startDate 和 endDate 之间的日期差异后显示每月的休假总数

Spring hibernate 插入竞争条件

c - 用C解析geojson文件

c# - 使用 NetTopologySuite 将东距/北距转换为纬度/经度

oauth - 如何在没有 Oauth 的情况下在我的服务器中配置 id 编辑器

java - 如何获得交通模拟中的曲线半径?

postgresql - 如何将 ctid 系统列转换为 long,反之亦然

r 栅格覆盖函数 - landsat 堆栈错误

openstreetmap - 指定边界框限制?