| Главная | Описания | Статьи | Программы | Загрузка | Ссылки | Разное

RMAPPP - утилита для подготовки карты к роутингу.


Утилита RMAPPP предназначена для автоматизированной подготовки карты в польском формате к нанесению графа маршрутизации и выполняет следующие операции:

1. При обнаружении точек, расстояние между которыми менее заданного (параметр -m), эти точки сливаются. Если одна из точек - конец дороги, то перенос осуществляется к точке, которая концом дороги не является, иначе - на середину соединяющей точки прямой.

2. При обнаружении пересечения отрезков в место пересечения на каждом отрезке добавляется точка (в случае, когда место пересечения лежит на расстоянии более заданного от концов отрезка) или ближайший конец отрезка переносится в место пересечения (в противном случае).

3. При обнаружении факта того, что продолжение отрезка пересекается с другим отрезком, и расстояние от конца отрезка до места пересечения менее заданного, конец отрезка переносится до места пересечения, и на отрезке, с которым происходит пересечение, добавляется точка (или в место пересечения переносится конец отрезка, см. п. 2).

Вызов:

rmappp.exe -i infile -o outfile [-m mindist]

infile - имя исходного файла

outfile - имя результирующего файла

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

Определения:

Дорога - полилиния ([POLYLINE] или [RGN40]) с типом от 0 до 0xC, или 0x42 или 0x49, находящаяся на Level0 (так как маршрутизация происходит только по этому уровню).

Точка - узел, принадлежащий дороге.

Отрезок - часть полилинии между двумя соседними точками.

Данные, которые не относятся к понятию "дорога", не изменяются программой и переписываются в выходной файл как есть. Утилита игнорирует заголовок и не производит никакого препроцессинга. Утилита представляет координаты с точностью до стотысячных градуса и записывает результат именно с такой точностью, вне зависимости от точности исходного файла. Утилита различает слова Data и Origin и нечувствительна к капитализации, но записывает в виде [POLYLINE], Data, [END], Type, а остальное - без изменений.

Чего утилита не делает (из того, что вы могли бы от нее ожидать):

1. Не убирает близко расположеные точки принадлежащие одной дороге (так как это, в частности, привело бы к огрублению прорисовки дуг). 

2. Не принимает во внимание самопересечения дорог.

Скорость работы программы довольно велика, однако следует помнить, что она зависит обратно квадратично от количества дорог на карте (а точнее от количества отрезков). Так, если на карте 30 тысяч дорог, то программа на гигагерцовом процессоре будет работать примерно минуту (зависит конечно от количества пересечений и отрезков в дороге, тестировалось на квадратах с www.freemaps.ru). Соответственно если попробовать сразу обработать карту всей европейской части России - то результата можно и не дождаться даже на современном процессоре. Впрочем, программа показывает прогресс, и это сразу станет понятно.

 

Скачать утилиту RMAPPP и исходники можно на странице Загрузка.

 

Автор утилиты RMAPPP и описания: Рождественский Дмитрий



Copyright © WWS 2004—2007
В дорогу!
Rambler's Top100 Экстремальный портал VVV.RU Locations of visitors to this page