Поиск страны, которой принадлежит город

Ответить
Arnor
Новоприбывший
Сообщения: 3
Зарегистрирован: 25 окт 2010, 15:37
Репутация: 0

Поиск страны, которой принадлежит город

Сообщение Arnor » 25 окт 2010, 15:43

Есть задача, найти область и страну которой принадлежит город.

Используя функцию ST_CONTAINS ищу полигоны с admin_level = 2 (страна) и admin_level = 4 (область) которым принадлежит город. Недавно сгенерировал базу для Европы и Азии (файлы взял на cloudmade). Не получается определить принадлежность российского города стране Российская федерация, также похожие проблемы наблюдаются и в некоторых других странах, а в некоторых все нормально. Возможно есть еще какой-то способ поиска.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Поиск страны, которой принадлежит город

Сообщение KolesovDmitry » 25 окт 2010, 15:47

1) Покажите, как выглядит ваш запрос.
2) Вы проверяли геометрию на корректность?

Arnor
Новоприбывший
Сообщения: 3
Зарегистрирован: 25 окт 2010, 15:37
Репутация: 0

Re: Поиск страны, которой принадлежит город

Сообщение Arnor » 25 окт 2010, 16:05

010100002031BF0D000BF3DCC317F34F41CB0B93CC21A55C41 - way города Москвы.

Код: Выделить всё

Для области
SELECT * FROM planet_osm_polygon WHERE ST_CONTAINS(way, '010100002031BF0D000BF3DCC317F34F41CB0B93CC21A55C41') and admin_level = '4'

Для страны
SELECT * FROM planet_osm_polygon WHERE ST_CONTAINS(way, '010100002031BF0D000BF3DCC317F34F41CB0B93CC21A55C41') and admin_level = '2'
Геометрии генерировал с помощью утилиты osm2postgis. Скорее всего она должна быть верной.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Поиск страны, которой принадлежит город

Сообщение Denis Rykov » 25 окт 2010, 18:38

Вы не пробовали проверять геометрии на валидность? Приведите пример запроса, который по вашему предположению возвращает некорректный результат.
Spatial is now, more than ever, just another column- The Geometry Column.

Arnor
Новоприбывший
Сообщения: 3
Зарегистрирован: 25 окт 2010, 15:37
Репутация: 0

Re: Поиск страны, которой принадлежит город

Сообщение Arnor » 26 окт 2010, 14:39

Обнаружил, что при генерации базы данных с помощью утилиты osm2pgsql у всех геометрий полигонов тип ST_polygon, Что натолкнуло меня на мысль что если у страны тип MUltipolygon, то оно берет первый полигон из мультиполигона. Это подтвердилось тем, что геометрий российской федерации полностью совпадает с геометрией сахалинской области (остров). Утилитой osm2pgsql генерировал со стандартными параметрами в слим режиме. Может кто знает, почему так могло случиться?

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей