Comments 28
Пользовался когда-то
github.com/cyclestreets/nominatim-install
С докером — их несколько, вроде есть более менее свежий.
github.com/cyclestreets/nominatim-install
С докером — их несколько, вроде есть более менее свежий.
+1
Вот еще интересный проект нашелся — github.com/komoot/photon
Вообще были эксперименты по запахиванию базы OSM сразу в эластик, даже что-то получалось и поживее чем Postgres. Надо посмотреть что там спустя 2 года происходит.
Вообще были эксперименты по запахиванию базы OSM сразу в эластик, даже что-то получалось и поживее чем Postgres. Надо посмотреть что там спустя 2 года происходит.
0
Спасибо за ссылку. В ближайшее время постараюсь провести тестирование, что будет быстрее: геокодер с использованием PostgreSQL(postgis) или elasticsearch
0
Вот геокодер на ElasticSearch, написанный на коленке для одного из проектов: github.com/ei-grad/geocoder. В итоге используем что-то другое, но этот вроде неплохо работал.
Feedback welcome.
Feedback welcome.
+1
photon для построения индекса вроде тоже PostGIS использует.
Раз уж это тред геокодеров — вот попробуйте и мой. github.com/kiselev-dv/gazetteer
Раз уж это тред геокодеров — вот попробуйте и мой. github.com/kiselev-dv/gazetteer
+1
Обязательно на днях попробую=)
Можно будет ещё проверить что же быстрее выполняет запрос.
Можно будет ещё проверить что же быстрее выполняет запрос.
0
Вот тут можно живьем инсталляцию покрутить. osm.me
0
UFO just landed and posted this here
Да, доступно. Вот пример:
Request: nominatim.openstreetmap.org/reverse?format=json&lat=46.4846121&lon=30.7325586
Response:
Request: nominatim.openstreetmap.org/reverse?format=json&lat=46.4846121&lon=30.7325586
Response:
{"place_id":"91403255","licence":"Data © OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright","osm_type":"way","osm_id":"160458343","lat":"46.48490415","lon":"30.7323209604386","display_name":"23, Преображенская улица, Одесса, Приморский район, Одесса, Одесская область, 65082, Украина","address":{"house_number":"23","road":"Преображенская улица","city":"Одесса","county":"Приморский район","state":"Одесская область","postcode":"65082","country":"Украина","country_code":"ua"}}
+1
UFO just landed and posted this here
Да, должна эту штука помочь.
Можно сделать ещё проще: установить postgreSQL, postgis и Osm2pgsql. Этих программных продуктов должно хватит чтобы импортировать карту OSM в БД, а дальше запросами SQL в PostgreSQL получаете нужные данные. Мне очень понравилась статья Русификация и мультиязычность карт OpenStreetMap, там очень хорошо расписан процесс установки карт, советую прочитать.
И ещё один вариант: загружаете карту OSM с сайта туц в формате *.osm.bz2(это архив с картой в формате XML), потом парсите этот XML файл с помощью вашего любимого языка=). Вот ссылка на архитектуру OSM XML карты
Можно сделать ещё проще: установить postgreSQL, postgis и Osm2pgsql. Этих программных продуктов должно хватит чтобы импортировать карту OSM в БД, а дальше запросами SQL в PostgreSQL получаете нужные данные. Мне очень понравилась статья Русификация и мультиязычность карт OpenStreetMap, там очень хорошо расписан процесс установки карт, советую прочитать.
И ещё один вариант: загружаете карту OSM с сайта туц в формате *.osm.bz2(это архив с картой в формате XML), потом парсите этот XML файл с помощью вашего любимого языка=). Вот ссылка на архитектуру OSM XML карты
0
UFO just landed and posted this here
Тут уж ничего не поделать, opensorce продукты — они такие. Зато с этими задачами легко справляется такие гиганты как Yandex map и Google map.
0
Номинатим такие адреса очень не любит.
Вот: «Москва, рощинский 2-й проезд, 8»
osm.me/#!/ru/map/5/57.78623/52.99805/q/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,%20%D1%80%D0%BE%D1%89%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9%202-%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%B7%D0%B4,%208/
«Москва, 39-й км МКАД» тоже находится, но мкад и вбит в осм по сегментам, интерполировать киллометры мой подопечный пока не умеет.
osm.me/#!/ru/id/hghnet-2919500296-m716947792/map/14/55.59932/37.5117/q/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,%2039-%D0%B9%20%D0%BA%D0%BC%20%D0%9C%D0%9A%D0%90%D0%94/
Вот: «Москва, рощинский 2-й проезд, 8»
osm.me/#!/ru/map/5/57.78623/52.99805/q/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,%20%D1%80%D0%BE%D1%89%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9%202-%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%B7%D0%B4,%208/
«Москва, 39-й км МКАД» тоже находится, но мкад и вбит в осм по сегментам, интерполировать киллометры мой подопечный пока не умеет.
osm.me/#!/ru/id/hghnet-2919500296-m716947792/map/14/55.59932/37.5117/q/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,%2039-%D0%B9%20%D0%BA%D0%BC%20%D0%9C%D0%9A%D0%90%D0%94/
0
Ух ты, в OSM уже и номера домов есть :-/ Надо вылезать из разморозки.
PS Посмотрел свой район, номера у 90% домов есть, а при поиске улицы Ленина почему то только её десятую часть находит-подсвечивает.
PS Посмотрел свой район, номера у 90% домов есть, а при поиске улицы Ленина почему то только её десятую часть находит-подсвечивает.
0
Сколько заняла база Украины в БД?
0
База данных заняла 5399 MB.
Это с учётом того, что за пару месяцев собрались логи.
Это с учётом того, что за пару месяцев собрались логи.
0
Ясно, спасибо. Пока ждал ответа развернул БД Украины+России. Заняла в районе 35 Гигбайт.
0
Не поделитесь образом виртуалки?)
0
Нет, делал для теста.
Все просто. Качаем карты отсюда http://download.geofabrik.de (как и указано в посте)
Потом объединяем по-парно (сразу несколько файлов нельзя, только по два за несколько проходов):
Все просто. Качаем карты отсюда http://download.geofabrik.de (как и указано в посте)
Потом объединяем по-парно (сразу несколько файлов нельзя, только по два за несколько проходов):
#/usr/src/Nominatim-2.4.0/utils/osmosis --read-pbf file=russia-latest.osm.pbf --read-pbf file=ukraine-latest.osm.pbf --merge --write-pbf omitmetadata=true file=rus-ukr.osm.pbf
0
Спасибо!
Наверное, вначале попробую через их апи, с кешированием
Наверное, вначале попробую через их апи, с кешированием
0
На openstreetmaps Nominatim с ограничениями, насколько я помню один запрос в секунду. То есть для поиграться подойдет, а если серьезней, лучше развернуть свой.
ps. С таким ограничением не только кеширование нужно, а система управления распределения очереди задач (например celery, если python, ограничение запуска следующей задачи: http://docs.celeryproject.org/en/latest/userguide/tasks.html#Task.rate_limit ). То есть ограничить частоту запросов к серверам openstreetmaps.org.
ps. С таким ограничением не только кеширование нужно, а система управления распределения очереди задач (например celery, если python, ограничение запуска следующей задачи: http://docs.celeryproject.org/en/latest/userguide/tasks.html#Task.rate_limit ). То есть ограничить частоту запросов к серверам openstreetmaps.org.
0
Sign up to leave a comment.
Установка OpenStreetMap Nominatim для нахождения широты и долготы по введенному адресу