Синхронизация отделений Новой Почты с OSM

Цель: сделать разметку всех отделений НП на OSM менее убогим (посмотрите наглядно насколько оно убого по ссылке ниже).
Потыкать (лучше в Chrome, если сильно тупит придётся некоторые слои отключать)
Указать автору на ошибки синхронизации
Код (на Dart-е :troll:)

По умолчанию на карте видны отделения НП/OSM (данные не очень свежие) и стрелками показано как они будут объединяться. Если на отделении НП стоит точка, это значит, что его не с чем объединять. Все необъединённые отделения OSM будут удалены.

На данный момент практически готов алгоритм объединения. Написание кода для выполнения конкретных запросов к OSM API будет позже. Мне ещё надо решить как я буду помечать сомнительные отделения (fixme, наверное, и комментарий), какие теги я буду указывать. Но это уже следующий этап. Сейчас хочется максимально улучшить алгоритм для более корректного объединения.

Будущее (если лень не возобладает):

  1. Автоматическая синхронизация через промежутки времени.

  2. Синхронизация всего, что легко доступно (McDonald’s, отделения/терминалы/банкоматы/почтоматы ПриватБанка…).

А за яким критерієм визначається, що існуюча точка/лінія відповідає запису з реєстру НП?
Якщо знайдено відповідність, координати яких даних мають вищий пріоритет: OSM чи НП?

  • Яким чином на ваш погляд повинна виглядати “розмітка всіх відділень НП в ОСМ”?

  • чому не використовується кластеризація для leaflet`а?

  • на скількі “старі” у вас дані з ОСМ?

  • як отримати з вашої мапи permalink? щоб вказати на неточність/точність/помилки в даних

  • чому б не створити валідатор замість бота?

Всё зависит от конкретного случая. Можете почитать комменты к методам _merge*.

Они там по крайней мере должны быть. Посмотрите на мою карту. Из ~2к отделений на OSM есть только 575. Множество отделений были перенесены и упразднены. Полезность разметки отделений на OSM на данный момент стремится к нулю.

Хоть это никак не относится к задаче, отвечу… Потому что так легче проверять. Можно сразу посмотреть на карту Украины и увидеть где есть или может быть проблема с синхронизацией.

Точный день не скажу. Около 2 месяцев.

Никак. Если очень надо - могу запилить фичу. Но пока я спокойно обходился просто указанием нас. пункта + область + номер отделений/я для личных заметок.

  1. Хочу всё полностью автоматически. Скрипт должен работать по принципу “не навреди”. Если вдруг он не сможет понять что к чему, то только тогда должен вмешаться человек.

  2. Я не верю в валидаторы. Есть какая-то статистика по тому следят ли люди за результатами валидаторов и исправляют ли ошибки на которые они указывают? На сколько оперативно исправляют? Опять же нужно учесть значимость валидатора. Неверные границы страны более важны, чем какое-то 75-ое отделение Новой Почты с неправильной позицией.

А что, Новая Почта выложила в открытый доступ координаты своих отделений?

Не знаю что для вас есть “открытый доступ”, но таки да, можно за 5 минут регнуться, получить API ключ и выдернуть список всех отделений (https://devcenter.novaposhta.ua/docs/services/556d7ccaa0fe4f08e8f7ce43/operations/556d8211a0fe4f08e8f7ce45).

Але тут треба брати до уваги, що скоріш за все, якщо навіть координати були отримані за допомогою GSP-приймача, вони матимуть певну похибку. А якщо вони отримали координати, скажімо скориставшись гео-кодінгом Яндекса, то тут треба покладатись на точність Яндекса, але такі дані в ОСМ використовувати вже неможна.

А ще є таке

Я не думаю, що Нова пошта буде опиратись додаванню/уточненню їх відділень в ОСМ, але зважаючи на таке ^ (див. цитату) було б непогано запитати в них дозволу на імпорт.

+1.
Поэтому я не советовал бы заливать в OSM точки с координатами, полученными от API Новой Почты. Максимум, что с ними можно делать - использовать для уточнения и поддержки в актуальном состоянии базы OSM.

+1.
Как минимум, надо им написать с вопросом о том, откуда были взяты координаты отделений. Можно представиться, мол, “Пишу от имени сообщества OpenStreetMap Украина…” Я мог бы написать, только… куда? Нашёл на сайте только один e-mail - support@novaposhta.ua.

Поэтому при внесении любой информации с сайта https://novaposhta.ua/ нужно давать ссылку на него в теге source=* пакета правок.

Я знаю как некоторые члены сообщества призерают ботов. Видят покрывшиеся мхом данные, но продолжают призерать. Я в этом отношении более либерален и считаю, что если это можно безопасно автоматизировать, то стоит попробовать.

Так и есть, особенно в маленьких нас. пунктах. Там вообще просто в центре стоит точка, без привязки к зданию. В более крупных нас. пунктах (от 3 отделений и больше) точность гораздо лучше. Конечно из-за того, что НП размечает не на OSM, то отделения могут находиться где-то рядом. Я считаю так: лучше, чтобы пользователь пришёл и обнаружил, что отделение находится с другой стороны здания или в соседнем здании, чем пришёл и узнал, что отделения там вообще уже 2 года как нет. Я в шапке уже написал, что буду помечать отделения, в точности расположений которых есть сомнения. Сообщество потом может уточнять их местоположение, как и в случае с валидаторами. Приложения могут подсказывать пользователю, что не стоит надеяться на точность этой POI в интерфейсе.
Опять же, если такое отделение уже есть на OSM, то оно будет в приоритете, т.е. останется с корректным адресом.

Вы это знаете наверняка или предполагаете? Мне кажется, что тут вопрос сложнее, чем “не мапте по Google Maps”. Я не силён в юр. вопросах, но мы полностью придерживаемся правил НП. Взяли данные, оставили ссылку (хотя не понятно относится ли это к API) на их ресурс. Сомневаюсь, что нам необходимо знать откуда они берут каждый кусочек своих данных и проверять всю цепочку лицензиатов (где бы их ещё найти?). Более того я даже не знаю скажут ли они нам это. Мы получаем от них просто 2 сырых координаты. Могу ещё сказать, что во время проверки работы алгоритма я находил несколько отделений, которые были размечены далеко от нужного здания, хотя такой адрес на Яндекс.Картах был.

Можу скзати однозначно, що треба спитати дозволу у Нової пошти на використання координат, а також іншої інформації.

Якщо покладатись на “truth on the ground” то я, можу прийти у відділення нової пошти, які знаходяться поруч зі мною, і сфотографувати/занотувати номер та розклад роботи, максимальну вагу відправлень та інше (все що є на інформ стенді) і спокійно додати це в ОСМ, але це звісно не масові правки, які пропонуються тут. Для таких правок вже потрібен дозвіл на використання інформації, тим більше що “© 2006–2015 ООО «Новая Почта»” непрозоро натякає… до кого звертатись.

UPD. Можливо інтерес з боку учасників ОСМ призведе до переходу Нової пошти на використання ОСМ замість Яндекса :wink:

Неправильно мыслишь.

Если координаты были получены из Яндекс.Карт, то абсолютно неважно, через сколько “посредников” они прошли: вносить их в OSM нельзя. Никак и никогда.

И ещё. Есть в этом мире данные, источник которых неизвестен. Согласно правилам OSM, их нельзя вносить в базу. А можно вносить только те данные, источник которых точно известен и дал своё разрешение.

Поэтому нужно обязательно узнать у Новой Почты, откуда были взяты координаты, и можно ли эти координаты (а заодно и информацию об отделениях) вносить в OSM.

Если НП откажется рассказывать нам откуда берёт координаты или скажет, что берёт их с Яндекс.Карт, то единственный вариант - юзать геокодинг самим. Ну ок, можно попробовать что из этого получится. Где-то точность улучшится, но во многих случаях отделение будет стоять в середине улицы :(. Ещё можно попросить их, чтобы они всех сотрудников заставили включить GPS и добавить эти координаты в API. Но вероятность, что такая крупная компания сделает это для нас стремится к нулю. Посмотрим что они ответят.

А если НП не согласится дать нам разрешение на перенос отделений, то это будет печально. Ибо карты OSM мне нравятся, а вот неактуальные и куцые данные - нет.

В любом случае я им уже написал, жду ответа.

Круто! Чекаю разом з іншими (тримаймо кулаки)!

Итак, первый ответ есть:

Посмотрите тему про УкрПочту. Там используется валидация, геокодинг nominatim и ручное внесение.
По мере внесения добавляются/переименовываются улицы, здания. Единожды внеся хотя бы ref, можно будет следить. Иначе - никак.

Если НП берёт координаты с Яндекса и добавить в API GPS координаты не согласятся, то придётся делать полуавтоматическую синхронизацию. Первый раз вручную разметить всё, что Nomatim не осилил, а последующие разы опять же если Nomatim в недоумении, то тоже помогать ему ручками.

Ну, во-первых для всех точек, добавленных Nominatim’ом стоит ставить fixme=position.
На начальном этапе полуавтоматическое добавление самый верный способ.
Судя по API НП у точек есть свой ‘Ref’. Стоит узнать как часто он меняется и если достаточно устойчив,
можно воткнуть кго в OSM для уже созданных точек в качестве какого-нибудь левого тэга типа ref:novaposhta=‘…’
Тогда уже по нему в дальнейшем можно будет синхронизировать базы (время работы, удаленные/перенесенные отделения).

Nominatim не добавляет точки. Или это вообще, про добавлении точки исходя только лишь из адреса?

Да, я об этом.