Pull to refresh

Comments 15

Нет ли где открытого http API (платного/бесплатного)?
Это же логично. С учетом того что Google имеет жесткие ограничение на число запросов к геокодеру.
АПИ сейчас в процессе дебага и установки. Возможно в понедельник можно будет с ним поработать.

С большим числом запросов, у меня есть идея добавить массовый геокодинг, тоесть чтобы можно было отправить файлик на 10000 строк с адресами и через некоторое время скачать его обратно, с координатами, а не отправлять 10 000 запросов.
Расскажите почему вам не подошел Nominatim? В чем принципиальное отличие?
Номинатим, на сколько мне известно, не поддерживает ряд схем адресации весьма широко используемых в РФ и восточной Европе. На сколько я усепл разобраться, оминатим в принципе не понимает несколько адресов для 1 объекта.
Расширять существующую функциональность номинатима — довольно сложно. Достаточно сравнить число разработчиков которые указали в резюме что знают java и число умеющих писать функции plpgsql.

Следующий пункт, на форуме весьма часто спрашивают как получить выгрузку адресов для страны или региона. Эдакий кладр с координатами. Краулить таковой реестр с номинатима — это 3-4 миллиона запросов, скорее всего вас забанят раньше. Поднимать у себя локально номинатим и скриптами делать выгрузки — можно, но мой вариант проще и быстрее.

Ну и наконец просто по функциональности которую я уже реализовал в части расчета данных я номинатим сильно обгоняю:
Поддержаны практически все известные мне схемы множественной адресации, как то:
addr:housenumber2 + addr:street2
addrN
addr:street2
consctription number

Главное что сейчас их легко добавлять.

Сопоставление улиц по имени, по associatedStreet отношениям, получение перевода имени улицы с любого из этих вариантов.
Окрестные улицы, ближайшие населенные пункты, разбор пои по каталогу osm.ru с переводом тегов, с alias'ами типов.

Дальше, я не додумываю в данных за мапера. Если улица в адресе не указана — она индексируется в числе окресных, а не как часть адреса, при этом я сохраняю возможность при конечной обработке данных ее таки использовать как часть адреса. Так же с городами.

Обработка пои внутри полигональных пои, матчинг множественных адресов пои.

Переводы адреса на все языки которые удалось найти, с поддержкой alt_name, old_name и т.д.

В чем я сейчас уступаю номинатиму — это в оптимизации поиска по уже загруженым данным. Но, в чем я уверен, elasticsearch гибче в настройке поиска по индексу чем запросы к постгрешке. В нем из коробки есть alias'ы есть fuzzy search, есть suggestions, его легко кластеризовать.

В целом — каждый пункт, по отдельности — не тянет на оправдание нового велосипеда, но все вместе — набегает.
Спасибо за развернутый ответ. :) Захотелось развернуть у себя и посмотреть, как шустро будет работать адресный поиск.

Планируете делать реверсное геокодирование (координаты в адрес)?
Да, есть в чем то схожий проект github.com/mapzen/pelias они вообще используют elasticsearch для расчета Point Location. Тоесть они в начале грузят данные в постгис. Там собирают геометрию, потом грузят ее в эластик, и уже в эластике считают вложенность точек в полигоны. Я правда не посмотрел как они считают прочие геометрические соотношения и считают ли вообще.

Я специально использую схему данных совместимую (ну почти) с pelias. Есть желание и договоренности переделать индексацию данных для pelias на gazetteer. Я же собираюсь позаимствовать у них обратное геокодирование. Ну и помимо обратного геокодирования у них есть что подсмотреть в плане развертывания и обслуживания эластика.
По поводу развернуть у себя — подождите пару часов, я новый релиз запушу, 0.8.
Забавно.
В Москве на Мясницкой улице есть угловой дом с тройным номером: 22/2/5. Он имеет номер 22 по Мясницкой, 2 — по очень короткому Банковскому переулку и 5 — по Кривоколенному переулку. Я снимал в нём офис, во всех документах адрес указывается полный: Мясницкая, д. 22/2/5.
На картах OSM, Google и Яндекс адрес указан только один — Мясницкая, 22.
При поиске «Мясницкая, 22/2/5» Google и Яндекс находят этот дом, а OSM выдаёт ошибку.
Забавно, хотя на мой вкус Мясницкая, д. 22/2/5 — это задокументированный костыль.
Вкус вкусом, а в документах написано именно так.
Ну дак потому и задокументированный.
А костыль почему? Просто большой дом, выходящий на три улицы — вот и три номера.
3 адреса — не костыль. Костыль это запись трех адресов (3 номера дома по трем улицам) в таком виде: как составного номера дома по одной из улиц. Но надо признать костыль весьма распространенный и прижившийся.
Да ведь по всей Москве так на пересечениях улиц, только в большинстве случаев только два адреса пишут через дробь.
Не принимайте слова про костыли сильно всерьез. В центре Питра такая же ситуация.
Only those users with full accounts are able to leave comments. Log in, please.

Articles