ST_Contains(ST_MakeEnvelope)返回任何内容,而ST_Intersects(ST_MakeEnvelope)返回的结果太多

时间:2015-12-10 00:09:47

标签: postgresql openstreetmap postgis osm2pgsql

我已将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似乎几乎没有任何回报。这有什么不对?

0 个答案:

没有答案