Координаты всех улиц России. :)
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Координаты всех улиц России. :)
Улица и дома находятся внутри населённого пункта (place). А НП находится внутри матрёшки административно-территориального деления(boundary=administrative).
-
- Активный участник
- Сообщения: 218
- Зарегистрирован: 21 дек 2012, 01:57
- Репутация: 52
- Откуда: Питер
Re: Координаты всех улиц России. :)
Это называется геокодированием. Для данных osm есть специальный сервер, который примерно таким и занимается, https://wiki.openstreetmap.org/wiki/Nominatimnizhnegorskiy писал(а): ↑20 мар 2018, 16:29В итоге мне надо получить таблицу из случайных адресов (типа "123456, Московская область, Nский район, д. Нижние бугры, ул. 48летия Октября, д. 2") в виде строки и их координат.
Но у него конечно есть свои недостатки, далеко не каждый адрес он сможет правильно разобрать, так что на случайных адресах он будет давать сбои.
Ну и если у вас большое кол-во запросов, то лучше развернуть локальную копию.
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 16 мар 2018, 15:36
- Репутация: 0
- Откуда: Москва
Re: Координаты всех улиц России. :)
Я пока вижу, что НП обозначены точкой:
Как понять, какие в нем находятся улицы?<node id="711715624" lat="54.3107593" lon="48.3642771" version="30" changeset="53414679" user="iWowik" uid="481934" timestamp="2017-11-01T06:09:07Z">
<tag k="addr:country" v="RU" />
<tag k="addr:postcode" v="432000" />
<tag k="addr:region" v="Ульяновская область" />
<tag k="admin_level" v="4" />
<tag k="alt_name:tt" v="Ульян" />
<tag k="int_name" v="Ul'yanovsk" />
<tag k="name" v="Ульяновск" />
<tag k="official_status" v="ru:город" />
<tag k="old_name" v="Симбирск" />
<tag k="place" v="city" />
<tag k="population" v="619492" />
<tag k="population:date" v="2015-01-01" />
<tag k="wikidata" v="Q5627" />
<tag k="wikipedia" v="ru:Ульяновск" />
</node>
Вот мне как раз наоборот, необходимо нагенерить реальных адресов. Это, конечно, можно сделать, с помощью ФИАСа и Яндекс.геокодера или вот Nominatim, но это план Б пока. А сейчас я пытаюсь получить сразу и адрес и координаты из одного источника.Sergey Astakhov писал(а): ↑20 мар 2018, 17:23Это называется геокодированием. Для данных osm есть специальный сервер, который примерно таким и занимается, https://wiki.openstreetmap.org/wiki/Nominatim
Но у него конечно есть свои недостатки, далеко не каждый адрес он сможет правильно разобрать, так что на случайных адресах он будет давать сбои.
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 16 мар 2018, 15:36
- Репутация: 0
- Откуда: Москва
Re: Координаты всех улиц России. :)
А, я понял, что Вы имеете ввиду! Поставить локально Nominatim и делать обратный геокодинг по координатам домов? Крутяк!
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Координаты всех улиц России. :)
Ищите дальше, есть и полигональный объект.
-
- Активный участник
- Сообщения: 218
- Зарегистрирован: 21 дек 2012, 01:57
- Репутация: 52
- Откуда: Питер
Re: Координаты всех улиц России. :)
Ну это ещё проще, называется обратный геокодинг, Nominatim это тоже умеет.nizhnegorskiy писал(а): ↑20 мар 2018, 17:36Вот мне как раз наоборот, необходимо нагенерить реальных адресов.
Можно и не пользоваться готовыми сервисами/приложениями, но тогда вам придётся разобраться со структурой данных в OSM. OSM - это пространственная база данных, поэтому геометрические отношения там как правило не прописываются явно, а вычисляются из геометрии, это уменьшает простор для ошибок и избыточность данных. Т.е. вам нужно будет сформировать набор пространственных индексов объектов-полигонов, которые используются в адресации (области, районы, населённые пункты и т.п.) и затем искать там объекты по координатам для необходимой привязки.
https://wiki.openstreetmap.org/wiki/RU: ... 0%B8%D1%86
https://forum.openstreetmap.org/viewtopic.php?id=58978
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей