OpenStreetMap

(!) It’s a draft written in Russian. I don’t like machine translation, so the English version needs to be worked on separately. (!) This material can cause conflicting feelings

Большие правки бесят. Но больше bbox-ов меня бесит реакция вахтёров на них. За три года я увидел лишь одну адекватную попытку бороться с проблемой… Но давайте по порядку.


Я бы разбил большие правки на:

Правки больших отношений/линий

Они неизбежны. Хорошая новость: таких объектов мало, а значит таких правок будет мало.

Правки пересекающие 180-ый меридиан

… возникают при откате этимологии массовых правках на территориях разделённых им. Или при редактировании объектов около него.

В осмовском bbox правая граница больше левой. А что если мы вспомним, что живём на шаре? Какую рамку мы бы хотели увидеть? Подсказка:

Ну не, переделывать bbox мы не хотим. А что если бы OSM API выставляло бы пакету правок тег с адекватным bbox? Тогда бы инструменты просмотра правок могли бы отбрасывать такие правки и они бы не мешалась.

Правки только тегов

Есть компания RocketData, которая занимается импортом POI и поддержанием их актуальности. Мечта! Но неет, сообщество это бесит. Лучше мы будем изучать тысячи маленьких правок. Удачи.

Наши инструменты для вахтёрства не позволяют нормально изучить такие правки. Делите пакеты правок, иначе забаним. Это же ведь проще чем написать нормальные инструменты.

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

  1. Потому что они засоряют https://osm.org/history А фильтров там никаких нет.

  2. Их сложно проверить. А ведь, эти правки даже не меняют никакой геометрии!

Казалось бы, нужен инструмент, который выводит какие теги изменились. И кажется это есть только в OsmCha:

Круто Ну Етож Круто

Правда почему-то это работает только для небольших правок….

Мнение: массовые исправления тегов в одной большой правке — нормально. Опять же, OSM API могло быть указывать в тегах пакета правок, что он изменил только теги объектов.

Аналогия для программистов:

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

А теперь у вас есть куча репозиториев с кодом, в каждом из которых нужно внести отдельное изменение. Наверное круто было бы иметь монорепозиторий и одним коммитом обновить библиотеку? Так компании так и делают https://habr.com/ru/companies/yandex/articles/482926/

Так и в осм. У какой-то сети магазинов изменился сайт? сделайте отншение всех магазинов сети Измените его везде одной правкой. Какая разница, когда открыв свой район в osm.org/history вы увидете одну большую правку или одну предназначенную для вашего города?

4. Случайное редактирование в удалённых друг от друга местах

Например. Прилетаете вы со StreetComplete, Organic Maps на другой континент и вам сразу хочется что-нибудь замапить. Но взамен вы за это получите упрёк в комментариях к правке: https://github.com/streetcomplete/StreetComplete/issues/4582

Правильная реакция: прийти на GitHub к разработчику, поставить 👍 к проблеме и оставить маппера в покое.

Бывает иначе. Решали когда-нибудь задания в MapRoulette? Тогда вы знаете как надоедает постоянно отправлять свои правки. Поэтому вы решаете несколько близких заданий за раз. В какой-то момент вас отправляет на несколько километров.  Вы редактируете и отправляете правку.

tink.jpg

Хотя JOSM при отправке предупредит. Только что дальше делать-то? Удобно разбить правку в iD и JOSM нельзя.

Единственный редактор, который научился разбивать правки — EveryDoor. И хоть он работает только с точками, я не вижу проблемы в других редакторах, чтобы сделать хоть какое-то разбитие пакета правок. Хотя бы, чтобы разбить случайные правки в Чили и на Камчатке.

Мнение: пока в редакторах нет функции разбиения больших правок или хотя бы предупреждения, что вы затронули большую территорию — отстаньте от мапперов и идите на GitHub к разработчикам.

else

Остальные большие правки это либо нарочно большие правки, либо откаты больших правок:)

Discussion

Comment from pfg21 on 11 January 2024 at 10:01

опять же вопрос мы редактируем базу данных или карту ??
все требуют говорить про БД, но обижаются на географические размеры правок :)
решение - сделать свой инструмент со необходимыми ** и блекджеком !!

Comment from Zkir on 11 January 2024 at 10:24

Большие правки – плохо. Маленькие - тоже плохо :)

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

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

Comment from Zverik on 11 January 2024 at 10:48

Моя позиция, как всегда, — bounding box не характеризует правку, а changeset — надуманная группировка для правок, которая не характеризует изменения. Валидировать изменения нужно без оглядки на пакеты правок вообще. Но пока корпорации с деньгами поддерживают старый путь (см. osmcha), незадачливые вахтёры так и будут огрызаться не по адресу.

Comment from TrickyFoxy on 11 January 2024 at 11:24

Если алгоритм работает и с веями, и с отношениями, и они еще связаны как то между собой, то всё становится сложнее.

Если веи/отношения как-то связаны/пересекаются, то и разбивать такие пакеты не нужно. Для простоты можно смотреть пересекаются ли bbox объектов.

Кстати, если затронуты только теги, то разбивать тоже просто.

Но ещё проще не доводить до больших правок


bounding box не характеризует правку, а changeset — надуманная группировка для правок

мне взяло где-то 48 часов как бы осознать вообще что происходит…. Ну как это может быть в 21 веке?

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

Comment from Zverik on 11 January 2024 at 13:50

Ну, я об этом — и что нужно делать — говорил ещё в 2019: https://youtu.be/aRcHLKbXlcM?si=ENu-Z0iLqlHOSPxF&t=878

Comment from Zverik on 11 January 2024 at 13:52

А на русском и менее структурированно — вообще в 2016: https://www.youtube.com/watch?v=MKLwLI8fyn0

Comment from TrickyFoxy on 11 January 2024 at 14:09

Кстати, Enhanced Replication увидело свет или осталось идеей?

Log in to leave a comment