ArcGIS Server - сравнить маршруты - PullRequest
0 голосов
/ 23 декабря 2008

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

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

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

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

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

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

Спасибо.

Ответы [ 2 ]

1 голос
/ 31 декабря 2008

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

Этот метод не учитывает каких-либо "значительных" отклонений, таких как возврат назад, развороты или переход на соседнюю параллельную дорогу.

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

0 голосов
/ 23 декабря 2008

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

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

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

...