
English version
Program narzędziowy netgen
Program netgen pomaga w przygotowaniu mapy dla autoroutingu. Przygotowanie polega
na numeracji dróg oraz wskazaniu miejsc łączenia sie dróg czyli węzłów. Węzły generowane
są przez program netgen w miejscach gdzie dwie lub więcej dróg posiadają punkt wspólny.
Program netgen może generować węzły także na końcach dróg.
Podczas rysowania mapy łatwo
doprowadzić do sytuacji gdy punkty dróg nie pokrywają się dokładnie. W takim
wypadku węzeł nie zostanie wygenerowany. Jeśli w rzeczywistości drogi sie łączą
to taka sytuacja jest błędna. Wykrywanie takich niedokładnie narysowanych dróg
jest trudne dlatego program netgen zawiera kilka funkcji wspomagających.
Pierwszą z nich jest "dociąganie" blisko położonych punktów. Program netgen wyszukuje na mapie
punkty dróg położone w niewielkiej odległości od siebie i przesuwa je tak, aby się pokryły.
W ten sposób netgen koryguje drobne niedociągnięcia autora mapy. Drugą funkcją wspomagającą
wyszukiwanie błędów jest wizualizacja węzłów. Przy pomocy netgen-a można wygenerować listę węzłów
w formacie OZIExplorer. Tak zapisane węzły można nałożyć na mapę w programie GPSMapEdit i sprawdzić,
czy znajdują się we wszystkich miejscach, w których znaleźć się powinny.
Kolejna funkcja to wizualizacja ślepych końców dróg.
Często niedokładne narysowanie drogi powoduje, że jej koniec, który powinien łączyć się z inna
drogą pozostaje z niczym nie połączony (ślepy). Wychwytywanie takich błędów
ułatwia możliwośc wygenerowania listy punktów będących ślepymi końcami dróg.
Naturalnie ślepe końce dróg istnieją w rzeczywistości. Aby uniknąć ich
umieszczania w liście punktów służącej wyszukiwaniu błędów można je na mapie
oznaczyć stawiając punkt typu "koniec drogi". Sukcesywne oznaczanie
prawidłowych końców ślepych dróg doprowadzi do sytuacji gdy lista będzie
zawierać tylko błędy.
Wykrywanie zbyt bliskich węzłów. Przy tworzeniu mapy należy pamiętać o zachowaniu
minimalnej odległości między węzłami siatki dróg. Netgen umożliwia sprawdzanie czy minimalna
odległość w każdym przypadku została zachowana.
Rozcinanie pętli. Drogi umieszczone na mapie przeznaczonej do autoroutingu nie mogą zawierać pętli.
Innymi słowy droga nie może przecinać się sama z sobą. W celu usuwania niedozwolonych pętli w netgenie
zaimplementowano funkcję rozdzielania dróg zawierających pętle na mniejsze niezapętlone części. Netgen posiada
ograniczone możliwości usuwania pętli. Aktualnie rozcinanie pętli wykonywane jest tylko dla dróg z jedna pętlą.
Wykrywanie przecięć bez węzłów Niedokładne rysowanie dróg na mapie może doprowadzić do sytuacji gdy
w miejscu przecinania sie dwóch dróg nie ma węzła mimo iż w rzeczywistości skrzyżowanie istnieje. Netgen
potrafi wskazywać takie miejsca. Należy pamiętać, że operacja wyszukiwania przecięć jest bardzo czasochłonna.
Netgen został napisany dla potrzeb tworzenia UMP-Łódź, ale wkrótce po napisaniu znalazł
zastosowanie w projekcie UMP Warszawa. Pod wpływem
potrzeb twórców UMP Warszawa program został znacznie rozbudowany i udoskonalony.
Do rozwoju netgen-a przyczynił się zwłaszcza Alf/red/.
Liczne pytania skłoniły mnie do opisania sposobu wykorzystania netgena na przykładzie
przygotowywania UMP-Łódź.
Mapa edytowana jest przy pomocy programu MapEdit. Cała mapa zwarta jest w jednym pliku
lodz.mp. Proces jej przygotowywania przebiega następująco.
- Po dodaniu nowych elementów mapy na podstawie zebranych śladów, uruchamiam netgen
celem sprawdzenia poprawności mapy:
netgen -c -b -x -r 0.00008 -e 0.00002 -N < lodz.mp > lodz.wpt
Użyte opcje powodują:
- -c - wygenerowanie pliku z węzłami i punktami w formacie OziExplorer (lodz.wpt)
- -b - wygenerowanie węzłów na ślepych końcach dróg. Nazwy tych węzłów w pliku lodz.wpt
rozpoczynają się od litery "B"
- -x - dołączenie do pliku lodz.wpt punktów w miejscach przecięć linni bez węzłów.
Punkty tego rodzaju mają nazwę rozpoczynającą się od litery "I"
- -r 0.00008 - sprawdzenie minimalnych odległości (0.00008 stopnia odległości kątowej)
między węzłami i oznaczenie węzłów leżących zbyt blisko siebie literą "C" w nazwie.
- -e 0.00002 - "dociągnięcie" punktów leżących bliżej niż 0.00002 stopnia odległości kątowej.
Węzły "dociągnięte" są oznaczane literą "A" w nazwie
- -N - wyłączenie z listy węzłów "normalnych" (znajdujących się w punktach wspólnych dwóch
lub więcej linii). Przy wywołaniu netgen z użyciem opcji -N węzły "normalne" są zapisywane
do pliku lodz.wpt tylko w przypadku gdy nie
spełniają warunku minimalnej odległości od innych ("C" w nazwie), zostały dociągnięte
("A" w nazwie) lub są węzłami brzegowymi mapy ("M" w nazwie). Nazwy węzłów zaczynają
się od litery "N".
-
Jeśli netgen nie sygnalizuje błędów w mapie przechodzę do punktu 3.
Jeśli netgen sygnalizuje istnienie błędów, wczytuję plik lodz.wpt do programu
MapEdit wraz z plikiem mapy (lodz.mp). Przeglądam listę punktów wskazanych przez netgen
posiłkując sie opcją
View/List of Waypoints, Tracks, Routes. Poprawiam błędy wskazane przez netgen. Prawidłowe
końce ślepych dróg oznaczam punktami typu 0x1709 aby wyłączyć je z listy generowanej
przez netgen przy następnym sprawdzaniu. Prawidłowe przecięcia dróg bez węzłów (wiadukty)
oznaczam punktami typu 0x1708. Również one zostana wyłączone z listy generowanej przez netgen
przy kolejnym sprawdzaniu mapy. Powracam do punktu 1
-
Usuwam z mapy polskie znaki diakrytyczne przy pomocy programu tr, wynik zapisuję do pliku
lodz_bezpol.mp. Generuję mapę z informacjami dla autoroutingu poleceniem:
netgen -b -R -t39 -r 0.00008 -e 0.00002 < lodz_bezpol.mp > build.mp
Linia typu 39 jest używana do kreślenia restrykcji
-
Zip-uję plik build.mp i wysyłam do kompilacji na mapcenter2.
Krótką informację o używaniu netgen można uzyskać uruchamiając:
netgen -?
Program netgen jest rozpowszechniany na zasadach licencji GNU GPL.
Pobieranie
Netgen 1.22bugfix Szybka poprawka dla błędu występującego gdy algorytm sprawdzania integranlości sieci routingu napotka drogę bez węzłów.
Wersja źródłowa netgen-1.22bugfix.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.22bugfix.tar.bz2
Wersja dla MS Windows netgen-win-1.22bugfix.zip
Netgen 1.22ts Rozszerzenie komunikatu diagnostycznego dotyczącego błędnej restrykcji.
Wersja źródłowa netgen-1.22ts.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.22ts.tar.bz2
Wersja dla MS Windows netgen-win-1.22ts.zip
Netgen 1.22 Poprawki drobnych błędów.
Wersja źródłowa netgen-1.22.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.22.tar.bz2
Wersja dla MS Windows netgen-win-1.22.zip
Netgen 1.21 Wsparcie dla [SIGN].
Wersja źródłowa netgen-1.21.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.21.tar.bz2
Wersja dla MS Windows netgen-win-1.21.zip
Netgen 1.20 Wskazywanie nieużywanych punktów maskujących.
Wersja źródłowa netgen-1.20.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.20.tar.bz2
Wersja dla MS Windows netgen-win-1.20.zip
Netgen 1.19 Obsługa parametrów ForceClass i ForceSpeed.
Wersja źródłowa netgen-1.19.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.19.tar.bz2
Wersja dla MS Windows netgen-win-1.19.zip
Netgen 1.18 Konfigurowalna lista typów łączników. Zaimplementowane poszukiwanie "dziur" w siatce dróg.
Wersja źródłowa netgen-1.18.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.18.tar.bz2
Wersja dla MS Windows netgen-win-1.18.zip
Netgen 1.17 Usunięte podwójne parsowanie danych wejściowych. Dodany algorytm korekcji klas dróg wzorowany na Maproute Stanisława Kozickiego.
Wersja źródłowa netgen-1.17.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.17.tar.bz2
Wersja dla MS Windows netgen-win-1.17.zip
Netgen 1.14 Poprawiony błąd w algorytmie wyszukiwania przecięć
Wersja źródłowa netgen-1.14.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.14.tar.bz2
Wersja dla MS Windows netgen-win-1.14.zip
Netgen 1.13 Rozszerzony zbiór routowalnych typów linii
Wersja źródłowa netgen-1.13.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.13.tar.bz2
Wersja dla MS Windows netgen-win-1.13.zip
Netgen 1.12 Poprawiony błąd klasyfikacji węzłów
Wersja źródłowa netgen-1.12.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.12.tar.bz2
Wersja dla MS Windows netgen-win-1.12.zip
Netgen 1.11 Ulepsznone maskowanie ślepych końców
Wersja źródłowa netgen-1.11.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.11.tar.bz2
Wersja dla MS Windows netgen-win-1.11.zip
Netgen 1.10 Zwiększona elastyczność maskowania ślepych końców
Wersja źródłowa netgen-1.10.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.10.tar.bz2
Wersja dla MS Windows netgen-win-1.10.zip
Netgen 1.09 Kolejne poprawki Marcina Rudowskiego - maskowanie przecięć
Wersja źródłowa netgen-1.09.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.09.tar.bz2
Wersja dla MS Windows netgen-win-1.09.zip
Netgen 1.08 Poprawki Marcina Rudowskiego
Wersja źródłowa netgen-1.08.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.08.tar.bz2
Wersja dla MS Windows netgen-win-1.08.zip
Netgen 1.07 Nowy algorytm obliczania przecięć zaimplementowany przez Marcina Rudowskiego
Wersja źródłowa netgen-1.07.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.07.tar.bz2
Wersja dla MS Windows netgen-win-1.07.zip
Netgen 1.06 Poważne usprawnienia szybkościowe Marcina Rudowskiego
Wersja źródłowa netgen-1.06.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.06.tar.bz2
Wersja dla MS Windows netgen-win-1.06.zip
Netgen 1.05
Wersja źródłowa netgen-1.05.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.05.tar.bz2
Wersja dla MS Windows netgen-win-1.05.zip
Netgen 1.04
Wersja źródłowa netgen-1.04.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.04.tar.bz2
Wersja dla MS Windows netgen-win-1.04.zip
Netgen 1.03 zoptymalizowany pod względem szybkości przez Marcina Rudowskiego
Wersja źródłowa netgen-1.03.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.03.tar.bz2
Wersja dla MS Windows netgen-win-1.03.zip
Netgen 1.02
Wersja źródłowa netgen-1.02.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.02.tar.bz2
Wersja dla MS Windows netgen-win-1.02.zip
Netgen 1.01
Wersja źródłowa netgen-1.01.tar.bz2
Statycznie skompilowana wersja dla Linuksa
netgen-linux-static-bin-1.01.tar.bz2
Wersja dla MS Windows netgen-win-1.01.zip
Ostatnia aktualizacja strony nastąpiła 4 pazdziernika 2009 r.
Autor strony: Mariusz Dąbrowski (mgd4 na poczta onet pl)