Собственно конечная задача - получить список строк формата: <регион\область><город><улица><номер дома>
Для работы пользуюсь PostGIS (субд PostgreSQL). Загрузил данные с двух источников
1. http://gis-lab.info/projects/osm_dump/ - pdf -файлы (xml)
2. http://gis-lab.info/qa/osmshp.html - shape-файлы
структуры получившихся баз оказались разными.. хотя как я понял информация по 2ой ссылке была выведена с информации из 1вой (как - это тоже отдельный вопрос).
Лучше всего разобрался с базой по 2ой ссылке. Там разрез информации по таблицам информативный сам по себе (границы, города, дороги, дома и т.д.)
Вот что получилось добиться:
+ получил список областей страны (таблица\shape-файлы - boundaries_polygon). через фн-цию PostGIS ST_Within(region.way, country.way)
+ все города по каждой области(settlement_polygon). фн-я ST_Within(city.way, region.way)
+ все улицы по городу (roads_line). ST_Within(street.way, region.way)
- Но вот дома по этим улицам связать не получилось (buildings_polygon, buildings_point). с дорогами их можно связать разве что по расстоянию(функцию не искал, но думаю есть такая).. но подозреваю - это корректно
В таблицах домов на самом деле есть поле улицы.. Но оно заполнено крайне редко. Да и не у всех полигонах домов указан номер (то есть просто полигон с координатами и osm_id без какой-либо информации)
Подскажите как найти связать улицы и дома. Ведь база, которая используется здесь: http://www.openstreetmap.org/ и та, которую я выгрузил - одинаковы.
Может я не тем путем иду, не в те поля смотрю, и вообще не в ту религию верю:)
На счет информации с 1-ой - вобще глухо.. хотя там данные должны быть более полными. Здесь разрез идет по гео-типу и есть возможность получить все возможные теги по элементу.
Но беда - даже границы областей всех не удалось толком получить. Там они не в полигонах почему-то оказались, а в линиях. И если отрендерить эти линиии - некоторые участки областных границ отсутствуют. Хотя возможно фильтры неправильно строю, а фильтровал просто по admin_lvl.
Если нужно будет - могу кинуть эти запросы
Для рендеринга пользуюсь qGis. Для загрузки osm данных писпользовал - osm2pgsql. Для загрузки shape - shp2pgsql.
Так же пробовал для рендеринга использовать Mapnik - но пока с ним не очень подружился.
И извините сразу если вдруг не в ту тему написал
Как получить список адресов с домами по региону?
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 27 июн 2013, 18:26
- Репутация: 0
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Как получить список адресов с домами по региону?
Ну так в OSM действительно полно зданий, которым не присвоен адрес вообще, и зданий, у которых он заполнен не целиком - проехал человек мимо здания, увидел табличку, занес в тэг addr:housenumber и всё. Он, конечно, редиска, и валидатором потом надо такие вещи вылавливать, но факт остается фактом.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость