ST_Contains(ST_MakeEnvelope) ничего не возвращает, в то время как ST_Intersects(ST_MakeEnvelope) возвращает слишком много результатов

Я загрузил дамп данных OSM с http://geofrabrik.de/ в виде файла.pbf. Я использовал osm2pgsql для импорта этих данных в мою базу данных postgres с поддержкой postgis. Я пытаюсь получить геометрию, которая содержится в ограничивающей рамке, которую я создал. Использование 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, кажется, почти ничего не возвращает. Что здесь не так?

0 ответов

Другие вопросы по тегам