我已经从http://geofrabrik.de下载了 OSM 数据转储为 .pbf 文件。我已经使用 osm2pgsql 将这些数据导入到我的支持 postgis 的 postgres 数据库中。我正在尝试获取包含在我创建的边界框中的几何图形。使用 ST_Intersects 可以提供更多数据,因为那是“路”和我创建的信封的交集。使用 ST_Contains 不会返回任何内容。我的查询是这样的:
使用 ST_Intersects:
SELECT name, ST_AsText(ST_Transform(way,4326)) FROM planet_osm_polygon WHERE
ST_Intersects (way, ST_Transform(ST_MakeEnvelope((-122.1358332),
(37.494456), (-121.9858223),(37.594456), 94326), 900913));
使用 ST_Contains:
SELECT name, ST_AsText(ST_Transform(way,4326)) FROM planet_osm_polygon WHERE
ST_Contains (ST_MakeEnvelope((-122.1358332),
(37.494456), (-121.9858223),(37.594456), 94326), ST_Transform(way,94326));
ST_Intersects 似乎返回了太多数据,我只返回了几兆数据。ST_Contains 似乎几乎没有返回任何内容。这里有什么问题?