Вопрос

У меня есть список точек и маршрут, созданный внешним поставщиком через эти точки.

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

Затем я хочу иметь возможность определить, есть ли существенная разница между этими двумя маршрутами.

Одно из предложений состоит в том, что для двух маршрутов мы выясним, по каким сегментам дороги они проходят, и сравним список сегментов дороги?

Это правильный подход?Как нам получить список сегментов дороги по заданному маршруту?

Я использую сервер ArcGis 9.3 с Java 5 и Oracle 10g.Я использую функции ST и NetworkAnalyst через Java API.

Спасибо.

Это было полезно?

Решение

Рассчитайте маршрут, используя свои точки и дорожную сеть.Затем буферизируйте полученный маршрут в многоугольник (радиус буфера должен соответствовать вашему «допуску»).Затем обрежьте внешний маршрут, используя свой полигон.Если полученная полилиния не пуста, значит, имеется отклонение за пределы допуска.

Этот метод не учитывает какие-либо «значительные» отклонения, такие как возврат назад, развороты или выезд на близлежащую параллельную дорогу.

Альтернативно, вы можете сравнить полученные «направления» и проверить наличие отклонений, в частности, используя названия улиц.Это избавит вас от необходимости проверять каждый участок дороги.Если у вас есть отклонения в названиях дорог, то проверьте отдельные участки дороги каждого участка.

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top