【问题标题】:Getting Geometry shape of the entire OSM database获取整个 OSM 数据库的几何形状
【发布时间】:2014-08-10 23:29:41
【问题描述】:

我在 postgresql/postgis 上有多个数据库。 基本上它是每个国家的数据库(对于小型国家来说可能是大陆)。 我使用 osm2pgsql 导入数据,它运行良好。 我想创建一个网络服务器,它将获取纬度/经度坐标作为输入,然后访问正确的数据库。 为此,我认为我需要创建整个数据库的几何对象/多边形(同样,每个县都有一个数据库),检查指定的纬度/经度点是否在多边形中并将查询发送到正确的分贝。 如何创建这样的几何体/多边形?

谢谢, 哦哈德。

【问题讨论】:

标签: openstreetmap postgis


【解决方案1】:

将一个数据库任务划分为多个 PostgreSQL 数据库通常是错误的方法。虽然这种方法可能适用于其他数据库软件,但不适用于 PostreSQL。这是因为执行跨数据库查询很麻烦,因为您可能需要对此类查询执行此操作。最好将其划分为单个数据库中的多个模式。但是,如果您有一百万个或更少的特征(行),只需将所有内容与索引的国家/地区字段保持在同一个表中。这样,在地图上查看或使用 SQL 查询时,数据将是无缝的。

至于您的point-in-polygon 问题,这是最基本的GIS 问题,您会发现很多人都在问。您将需要一个代表国家或行政区域的多边形表(例如http://www.gadm.org/),最好使用 GiST 索引,并使用 ST_Contains 或 ST_Within 来确定该点位于哪个多边形内。

【讨论】:

  • 谢谢!使用模式而不是 db 的想法很好,我会坚决考虑使用它。所以这就是我所做的:我下载了geofabrik为每个国家提供的kml文件(例如download.geofabrik.de/africa/cameroon.kml)(为此创建了一个脚本)然后我遍历了所有kml,然后读取并创建了一个json文件,其中包含所有每个国家的多边形坐标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多