我已将http://geofrabrik.de的OSM数据转储下载为.pbf文件。我使用osm2pgsql将这些数据导入到我的postgis启用的postgres数据库中。我试图获取我创建的边界框中包含的几何。使用ST_Intersects可以提供更多数据,因为它是'way'和我创建的包络的交集。使用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似乎返回了太多数据,我只返回了几个megs数据。 ST_Contains似乎几乎没有任何回报。这有什么不对?