Поиск страны, которой принадлежит город
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 25 окт 2010, 15:37
- Репутация: 0
Поиск страны, которой принадлежит город
Есть задача, найти область и страну которой принадлежит город.
Используя функцию ST_CONTAINS ищу полигоны с admin_level = 2 (страна) и admin_level = 4 (область) которым принадлежит город. Недавно сгенерировал базу для Европы и Азии (файлы взял на cloudmade). Не получается определить принадлежность российского города стране Российская федерация, также похожие проблемы наблюдаются и в некоторых других странах, а в некоторых все нормально. Возможно есть еще какой-то способ поиска.
Используя функцию ST_CONTAINS ищу полигоны с admin_level = 2 (страна) и admin_level = 4 (область) которым принадлежит город. Недавно сгенерировал базу для Европы и Азии (файлы взял на cloudmade). Не получается определить принадлежность российского города стране Российская федерация, также похожие проблемы наблюдаются и в некоторых других странах, а в некоторых все нормально. Возможно есть еще какой-то способ поиска.
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Поиск страны, которой принадлежит город
1) Покажите, как выглядит ваш запрос.
2) Вы проверяли геометрию на корректность?
2) Вы проверяли геометрию на корректность?
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 25 окт 2010, 15:37
- Репутация: 0
Re: Поиск страны, которой принадлежит город
010100002031BF0D000BF3DCC317F34F41CB0B93CC21A55C41 - way города Москвы.
Геометрии генерировал с помощью утилиты osm2postgis. Скорее всего она должна быть верной.
Код: Выделить всё
Для области
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'
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Поиск страны, которой принадлежит город
Вы не пробовали проверять геометрии на валидность? Приведите пример запроса, который по вашему предположению возвращает некорректный результат.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 25 окт 2010, 15:37
- Репутация: 0
Re: Поиск страны, которой принадлежит город
Обнаружил, что при генерации базы данных с помощью утилиты osm2pgsql у всех геометрий полигонов тип ST_polygon, Что натолкнуло меня на мысль что если у страны тип MUltipolygon, то оно берет первый полигон из мультиполигона. Это подтвердилось тем, что геометрий российской федерации полностью совпадает с геометрией сахалинской области (остров). Утилитой osm2pgsql генерировал со стандартными параметрами в слим режиме. Может кто знает, почему так могло случиться?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость