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

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

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

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

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

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

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

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

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

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

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

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

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

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

Да, я об этом.

Получен второй ответ:

Треба б попросити їх перейти на OSM :slight_smile:

@TheSteelRat
перед тим як робити імпорт/уточнення в загальній базі на ОСМ, можна потестувати все це в пісочниці - http://wiki.openstreetmap.org/wiki/Uk:Sandbox_for_editing

Поки ми тут все обговорюємо, вже все звершилося
https://www.openstreetmap.org/changeset/44344278

За всю Україну не скажу, але по Кременчуку доволі не погано все зроблено. Дублікатів нема, зміщень нема, все впорядковано.

@militrik
C Кременчуком нет проблем. Там все отделения отлично мёрджатся, надо только удалить 2 дубликата. Гораздо более интересная ситуация с мелкими городами и сёлами, допустим:
https://www.openstreetmap.org/#map=18/50.34318/30.30430. Тут скрипт не смёрджил 1-ое отделение. В итоге мы имеем 3 отделения в городе, вместо двух. Притом добавленное отделение по координатам НП расположено совсем не там, ибо геолокация Яндекса на тот момент (когда НП забивала координаты) такого адреса не знала.

В общем у этого коммита есть несколько проблем:

  1. Дубликаты.
  2. Неправильное местоположение там, где Яндекс карты не знают адрес. Будет отделение в центре города/улицы :).
  3. Несоблюдение правил OSM - координаты то Яндекса…

А скрипт вважає відділення одним і тим же, якщо розходження в координатах від вже нанесеного та даних яндекса складає N метрів? І скільки цих метрів?

Бо ось приклад і все гаразд. Пошта не переїхала по даним яндекса і залишилась там, де я її наносив.
https://www.openstreetmap.org/node/4160503598#map=19/49.09377/33.42261
https://yandex.ua/maps/21609/kremenchuk/?ol=biz&oid=1230399501&ll=33.422518%2C49.094347&z=19&from=1org_map&mode=search

Привет

Это я автор скрипта мержа и этого коммита. Знаю что не все идеально получилось, что заметил - подправил вручную. Но так все-таки лучше, чем было раньше :slight_smile:

К сожалению не знал, что у вас тут похожая дискуссия уже была, иначе бы наверно тоже поучаствовал

В планах адаптировать его и для других данных, которые доступны в интернете. Например - банкоматов и отделений ПриватБанка и других банков

Не дуже добре вийшло
https://www.openstreetmap.org/node/4550936835#map=15/51.1126/28.0523 - нова, невірна точка
https://www.openstreetmap.org/node/3671979178 - стара точка
Наглядно видно через Achavi з вказанням bbox’у по Новим Білокоровичам

І чомусь думаю таких прикладів буде багато.

А скрипт вважає відділення одним і тим же, якщо розходження в координатах від вже нанесеного та даних яндекса складає N метрів? І скільки цих метрів?

Алгоритм был такой: считать корректным отделение если у него задан номер (например name=Нова Пошта 1) и находится в пределах двух километров от адреса, который предоставляет novaposhta.ua либо не имеет номера (name=Нова Пошта) и находится в пределах одного километра

В случае с Білокоровічами расстояние почти 2.5 км и скрипт, к сожалению, не распознал уже существующее отделение
Но теперь, созданное отделение имеет корректный source:pkey тег и созданную точку можно перенести в правильное место

@Eugene Schava вы так и не отреагировали на мои замечания.

К вам 4 претензии:

  1. Вы не можете использовать координаты отданные Яндексом в OSM. На самом деле на этом пункте можно было бы остановиться.
  2. Алгоритм вашего скрипта очень прост. Он ничего не знает про границы города и адреса по координатам, а оперирует лишь расстоянием между OSM и Яндекс координатами. В итоге получается как в Лопатине (Львовская область). В городе всего 1 отделение и оно было нанесено правильно. Ваш скрипт снёс это отделение и переместил его куда-то возле леса.
    Ещё примеры:
    Чернигов, отделение 5. НП - правильно. OSM - нет. Вы выбрали OSM. Хотя там по названию дороги рядом легко можно было понять, что OSM отделение стоит не там.
    Ивано-Франковск, отделение 2. Та же тема ^^.
    Одесса, отделение 1. НП - правильно (Ленинградское шоссе 28, OSM - не правильно - 27)
    и т.д и т.п.
  3. Вы же понимали, что ваша авто правка не сможет сделать всё красиво. Где стандартные теги типа fixme когда ваш скрипт не может на 100% сказать, что эта координата стоит правильно? Как комьюнити сможет помочь вам исправить косяки вашего коммита?
  4. Вы какую-то визуализацию перед мёрджем делали? Вы бы увидели ваши косяки до коммита.

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

P.S. И куда исчезло отделение 1 в Броварах?

Кстати,

Нельзя. Они используют координаты Google. По TOS Яндекса и Google нельзя использовать результаты их geocoding на любых картах, кроме их.