Добрый день.
Подскажите, пожалуйста, куда копать и реально ли это вообще…
Мы по работе используем прокладку маршрутов на базе GraphHopper. Как это происходит:
Периодически качаем дамп OSM для России (раз в месяц)
GraphHopper конвертирует его в свой формат (минут 30)
В дальнейшем GraphHopper использует уже свои готовые данные и не требуется переконвертация.
Но, клиентам иногда требуется вносить быстрые и временные правки (например, перекрытие дороги, ремонт и т.д), чтобы прокладка маршрутов велась по актуальным данным.
И вот тут два пути видится:
Вносить правки в общий дамп OSM через редакторы - но это некрасиво и не факт, что кто-нибудь их не откатит.
Вносить правки в какой-то свой “слой правок”, делать слияние “основного слоя” (загруженный дамп) и “слоя правок” (свои наработки), после чего подсовывать уже “слитый” дамп GraphHopper - у.
Коллеги, подскажите, как правильнее и удобнее делать такие вещи?
Это-то понятно - такие вещи не грех и вынести на общую карту, но бывают краткосрочные модификации, которые всем остальным будут только мешать, а клиенту - нужны.
Завести отдельный топик на этом форуме с названием типа “как поддерживать актуальность дорожного графа после выгрузки из ОСМ?”. Потому как вы попали в топик по Екатеринбургу, его мало кто смотрит, а вопрос глобален.
По существу
Если эти правки соответствуют состоянию местности на момент внесения, то и вносите их прямо в базу ОСМ. Мы все за актуальность. Делайте робота по ежедневной конвертации и всем будет хорошо.
Единственное, что если ремонт - это на один-два дня, то это и вам нет выгоды вносить - сегодня по карте объедете реальный ремонт, а завтра будете объезжать несуществующий, уже законченный.
Добрый день.
Подскажите, пожалуйста, куда копать и реально ли это вообще…
Мы по работе используем прокладку маршрутов на базе GraphHopper. Как это происходит:
Периодически качаем дамп OSM для России (раз в месяц)
GraphHopper конвертирует его в свой формат (минут 30)
В дальнейшем GraphHopper использует уже свои готовые данные и не требуется переконвертация.
Но, клиентам иногда требуется вносить быстрые и временные правки (например, перекрытие дороги, ремонт и т.д), чтобы прокладка маршрутов велась по актуальным данным.
И вот тут два пути видится:
Вносить правки в общий дамп OSM через редакторы - но это некрасиво и не факт, что кто-нибудь их не откатит.
Вносить правки в какой-то свой “слой правок”, делать слияние “основного слоя” (загруженный дамп) и “слоя правок” (свои наработки), после чего подсовывать уже “слитый” дамп GraphHopper - у.
Коллеги, подскажите, как правильнее и удобнее делать такие вещи?
Блокнотом Вам нужно найти нужную точку (её id), прикинуть её версию в вашем дампе и увеличив на единицу дописать теги (не забыв старые, а то они пропадут).
Ох. В общую базу такое нельзя, конечно. А отдельно вы намучаетесь поддерживать базу этих разрешений. То есть была, скажем, в базе ОСМ дорога №213651276, и вы знали, что ей нужно перед конвертацией вкатить такие-то разрешения. А я ее разрезал пополам, и в худшем случае появилось две новых дороги с новыми номерами. Любому другому навигатору это нормально, т.к. связность осталась, а вам придется или вручную отслеживать такие правки и добавлять два новых правила, или робота писать, который анализируя местоположение дорог в графе или на местности автоматически вкатывает нужные разрешения.
А есть какие-то формальные правила доступа (принадлежность к организации, тип ТС или т.п.).
Если есть, то можно замутить препроцессор на базе тегов access/operator/network и т.п.
Что именно не разрешат?
К примеру, если нужно разрешение доступа для конкретных типов транспорта, то общую базу можно вообще не трогать.
Или, к примеру, если дорога принадлежит/обслуживается какой-то организацией, и нужно разрешить доступ к ней машинам этой организации - то в общую базу на дорогу достаточно только поставить тег operator с названием этой организации (ничего секретного).
Это вы еще не всю проблему поняли Граф ОСМ свободный, бесплатный и в среднем довольно неплохой, но никто не гарантирует его связность в любой момент времени. Вандалы или новички его частенько портят то тут, то там. Есть валидаторы, но они только показывают потенциальные проблемы, в надежде что когда-нибудь активные участники заметят это и исправят. Сами валидаторы ничего не правят. Поэтому вы можете в какой-то момент нарваться на ситуацию, когда маршрут не находится, или находится с огромным объездом - просто потому, что в графе потерялась склейка двух дорог.