Приятно когда нормально отрисованная схема. Идеологически - согласен.
Теперь вопросы/критика:
“API для JOSM” - читается странно. Может быть “API для Notes”? Или будет делаться руками на машине редактора?
Уже есть понимание как должна выглядить логика “Пригодно для авто-загрузки”? ИМХО, правила/логика должны быть доступны для чтения всем. Например GitHab, чтобы могли проверить на неочевидные вещи.
Имелось в виду, что сейчас в JOSM можно скачать слой заметок (Notes). А появится еще один плагин, который создаст еще один слой “Заметки, созданные игроками”. Там для удобства будут точки с уже готовым тегами, которые мапперы, если сочтут нужными, через Ctrl+C/Ctrl+Shift+V скопируют на соответствующий объект.
Изначально я думал, что такие вещи, как число этажей здания или число полос на автодороге это данные, где нельзя напортачить. Никаких двусмысленностей и возможных опечаток. Но вот после фразы “набегут школьники и понастроят небоскрёбов, чтоб футуристично было” не знаю, стоит ли это вообще делать. В первой версии редактора красной линии не будет. А там посмотрим.
Кроме редактора, встроенного в игру, мне надо будет сделать отдельный open-source редактор и вот с ним уже будет другой вопрос - можно ли давать авторизироваться учеткой OSM и вносить правки напрямую. Удобный редактор для мелких правок с 3Д-визуализацией результата - вроде бы отлично, но чем проще инструмент, тем больше вероятность, что набегут не пойми кто и будут вандалить. Относительная сложность JOSM’а сейчас фильтрует тех, кто настроен несерьезно.
Я чуть позже сформулирую все, что хочу сделать и создам отдельную тему для обсуждения.
Вопрос по поводу отдельного редактора.
Время от времени возникают конфликты правок, т.е. кто-то успел изменить раньше загружаемые данные.
Как этот момент будет решаться в редакторе?
Красная линия в редакторе будет сделана не сразу, либо не будет сделана вообще. А при отправке в мою базу конфликтов не будет, туда данные будут отправляться по одному тегу. Вернее, если вдруг окажется, что двое одновременно отправят - значит, один другого просто перезапишет.
прямо. Например:
(1) текущая версия вея #1
(2) игрок внес правку, локальная версия стала #2. Но правка не залита, версия в OSM всё ещё #1
(3) маппер внес правку в josm и отправил на сервер. Версия в OSM стала #2
(4) попытка залить правку игрока из п. 2. Здесь возникнет конфликт версий.
Будет немного не так. Правки будут не в формате OSM. У меня вообще в тайлах не хранится id объектов, да и сами объекты на этапе нарезки тайлов обрабатываются через ogr2ogr с превращением данных в WKT-подобный формат.
(1) У здания не указан цвет
(2) Игрок внес заметку: цвет здания по адресу с такими-то координатами - желтый.
(3) Заметка лежит в базе со статусом “ещё не внесено в OSM”
(4) маппер внес правку в JOSM, отправил, заметка теперь имеет статус “внесено в OSM, но еще не обновилось в игре”
(5) раз в несколько недель перенарезаю тайлы, результат появляется в игре, в базе всем заметкам с датой не позднее даты дампа planet.osm ставлю статус “готово”.
Возможна такая ситуация.
Теги из редактора Generation Streets не успели вовремя внести, до того как здание удалили в базе ОСМ.
В такой ситуации наверно теги просто нужно выбрасывать.