Какой лучший способ реализовать маршрутизацию через такие места, как парковки?

9

Я использую OSM2PO для маршрутизации для пешеходных маршрутов, и я заметил, что многие пешеходные дорожки OSM не идеально настроены.

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

Есть ли практический способ справиться с этим? Я предполагаю, что та же самая проблема возникает, когда имеешь дело с любыми "зонами", которые можно пройти (т.е. парки без проходов через них).

Другая проблема заключается в том, где тротуары не соединяются с дорогами. Во многих ситуациях это снова приводит к результатам субпараметрии.

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

Спасибо за ваши мысли!

DFx
источник

Ответы:

5

Принимая во внимание ответ Шона (что вы должны добавить «отсутствующие» пэты самостоятельно), а также то, что эти пропущенные части технически являются частями дорожного графа, которые, в свою очередь, являются просто линиями, вот быстрый обходной путь, который вы можете использовать. Если у пешеходной дорожки есть общая точка с «проходимым» многоугольником, экспортируйте границу этого многоугольника в виде линии на дорожный график (при необходимости измените атрибуты). Таким образом, путь не будет нарушаться на границе такого многоугольника, но вместо этого он будет отображаться по периметру.

Второй (необязательный) шаг - построить прямой путь через многоугольники. Если вы добавите специальный тег к экспортируемым границам (то есть сделаете их идентифицируемыми), вы можете выбрать узлы реальных путей, которые лежат на одной экспортированной границе, и создать простую прямую линию из одной точки в другую и добавить эту линию на график - Вы получите свои вымышленные непрерывные пути. Теперь вы можете удалить границы с графика. В зависимости от программного обеспечения, которое вы предпочитаете, и ваших навыков, вы можете создавать вымышленные пути с помощью этого алгоритма, фактически не добавляя границы к вашему графику.

SS_Rebelious
источник
Спасибо за ваши ответы. Хорошие моменты. Что касается osm2po, есть ли у кого-нибудь предложения для какого слоя это попробовать? Т.е. для данных osm до того, как они попадут в osm2po или во время построения графика osm2po ...
DFx
6

Единственный практический способ - добавить «пропущенные» маршруты самостоятельно. OSM, вероятно, не должны помещать парковки в свои пешеходные маршруты. Есть проблемы ответственности с добавлением маршрутов, которые не являются реальными, должным образом поддержанными пешеходными путями. Стоянка, хотя и проходимая, может быть опасной и может быть частной собственностью. У вас будут похожие проблемы с парками или любым другим пространством, которое не предназначено для пешеходных поездок. Тщательно продумайте эти вопросы, прежде чем направлять людей через эти области.

Шон
источник
+1 - Они также могут быть огорожены или иметь дренажные канавы по периметру и т. Д.
Дрю
1

Да, проблема сама OSM-Data. Для маршрутизации вам понадобится сеть линий (ребер) и ссылок (вершин). Полигон - это еще одна проблема. Я думаю, что самый простой способ справиться с этим - нарисовать дополнительные пути непосредственно в JOSM. В osm2po есть две альтернативы для управления ногой / велосипедом / автомобилем. Либо создайте график точно для одного варианта использования, либо создайте многоцелевой график (со всеми дорогами, путями и т. Д.) И принимайте решения динамически во время обхода (маршрутизации). Для последних могут понадобиться навыки Java. Чтобы получить первое представление о том, как это может работать, взгляните на текущий jar плагинов (исходный код прилагается). Там вы найдете маршрутизатор, который ждет у светофоров в течение одной минуты.

Карстен
источник
Спасибо Карстен - я вижу, что JOSM был бы идеальным, но я пытаюсь сделать это для всей Канады / США. Я думаю, что простой поворот многоугольника в несколько путей будет работать в моей ситуации, так как я просто пытаюсь получить грубое время / расстояние ходьбы (не отображая фактические направления маршрутизации). Поэтому мне интересно, есть ли способ заставить osm2po преобразовывать полигоны в пути до того, как он построит график, или мне нужно было бы сначала обновить файл OSM ...
DFx
osm2po не конвертирует полигоны. Это должно быть сделано на другом этапе предварительной обработки. Если вы видите какой-либо шанс преобразовать полигоны в простые способы и соединить их с дорожной сетью, тогда я вижу возможность объединить обе данные. Но как ты справишься? Полигоны могут иметь много внутренних отверстий, например, озера, например. Как вы можете гарантировать, что ваши пользователи не будут нести оборудование SCUBA полностью?
Карстен
Да, я понимаю вашу точку зрения - это будет далеко не просто :)
DFx