Comments 15
Нет ли где открытого http API (платного/бесплатного)?
Это же логично. С учетом того что Google имеет жесткие ограничение на число запросов к геокодеру.
Это же логично. С учетом того что Google имеет жесткие ограничение на число запросов к геокодеру.
-1
АПИ сейчас в процессе дебага и установки. Возможно в понедельник можно будет с ним поработать.
С большим числом запросов, у меня есть идея добавить массовый геокодинг, тоесть чтобы можно было отправить файлик на 10000 строк с адресами и через некоторое время скачать его обратно, с координатами, а не отправлять 10 000 запросов.
С большим числом запросов, у меня есть идея добавить массовый геокодинг, тоесть чтобы можно было отправить файлик на 10000 строк с адресами и через некоторое время скачать его обратно, с координатами, а не отправлять 10 000 запросов.
0
Расскажите почему вам не подошел Nominatim? В чем принципиальное отличие?
0
Номинатим, на сколько мне известно, не поддерживает ряд схем адресации весьма широко используемых в РФ и восточной Европе. На сколько я усепл разобраться, оминатим в принципе не понимает несколько адресов для 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, его легко кластеризовать.
В целом — каждый пункт, по отдельности — не тянет на оправдание нового велосипеда, но все вместе — набегает.
Расширять существующую функциональность номинатима — довольно сложно. Достаточно сравнить число разработчиков которые указали в резюме что знают 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, его легко кластеризовать.
В целом — каждый пункт, по отдельности — не тянет на оправдание нового велосипеда, но все вместе — набегает.
+1
Спасибо за развернутый ответ. :) Захотелось развернуть у себя и посмотреть, как шустро будет работать адресный поиск.
Планируете делать реверсное геокодирование (координаты в адрес)?
Планируете делать реверсное геокодирование (координаты в адрес)?
0
Да, есть в чем то схожий проект github.com/mapzen/pelias они вообще используют elasticsearch для расчета Point Location. Тоесть они в начале грузят данные в постгис. Там собирают геометрию, потом грузят ее в эластик, и уже в эластике считают вложенность точек в полигоны. Я правда не посмотрел как они считают прочие геометрические соотношения и считают ли вообще.
Я специально использую схему данных совместимую (ну почти) с pelias. Есть желание и договоренности переделать индексацию данных для pelias на gazetteer. Я же собираюсь позаимствовать у них обратное геокодирование. Ну и помимо обратного геокодирования у них есть что подсмотреть в плане развертывания и обслуживания эластика.
Я специально использую схему данных совместимую (ну почти) с pelias. Есть желание и договоренности переделать индексацию данных для pelias на gazetteer. Я же собираюсь позаимствовать у них обратное геокодирование. Ну и помимо обратного геокодирования у них есть что подсмотреть в плане развертывания и обслуживания эластика.
0
По поводу развернуть у себя — подождите пару часов, я новый релиз запушу, 0.8.
0
Забавно.
В Москве на Мясницкой улице есть угловой дом с тройным номером: 22/2/5. Он имеет номер 22 по Мясницкой, 2 — по очень короткому Банковскому переулку и 5 — по Кривоколенному переулку. Я снимал в нём офис, во всех документах адрес указывается полный: Мясницкая, д. 22/2/5.
На картах OSM, Google и Яндекс адрес указан только один — Мясницкая, 22.
При поиске «Мясницкая, 22/2/5» Google и Яндекс находят этот дом, а OSM выдаёт ошибку.
В Москве на Мясницкой улице есть угловой дом с тройным номером: 22/2/5. Он имеет номер 22 по Мясницкой, 2 — по очень короткому Банковскому переулку и 5 — по Кривоколенному переулку. Я снимал в нём офис, во всех документах адрес указывается полный: Мясницкая, д. 22/2/5.
На картах OSM, Google и Яндекс адрес указан только один — Мясницкая, 22.
При поиске «Мясницкая, 22/2/5» Google и Яндекс находят этот дом, а OSM выдаёт ошибку.
0
Забавно, хотя на мой вкус Мясницкая, д. 22/2/5 — это задокументированный костыль.
0
Вкус вкусом, а в документах написано именно так.
0
Ну дак потому и задокументированный.
0
А костыль почему? Просто большой дом, выходящий на три улицы — вот и три номера.
0
3 адреса — не костыль. Костыль это запись трех адресов (3 номера дома по трем улицам) в таком виде: как составного номера дома по одной из улиц. Но надо признать костыль весьма распространенный и прижившийся.
0
Only those users with full accounts are able to leave comments. Log in, please.
Геокодер OSM на Java