Sprawdz bledy

Z UMP

(Różnice między wersjami)
(Ślepe)
Linia 1: Linia 1:
[[Kategoria:Narzędzia]]
[[Kategoria:Narzędzia]]
 +
 +
Do sprawdzania błędów służą skrypty występujące pod ogólną nazwą "sprawdz". W systemach Windows to będzie skrypt ''sprawdz_bledy.bat'', natomiast w środowisku Unix jest odpowiedni ''sprawdz.awk'', którego można wywołać np. za pomocą ''make sprawdz''. Wyniki wszystkich tych sprawdzeń wyglądają podobnie -- skrypty przedstawiają wyniki działania na ekranie w postaci komunikatów mówiących co jest nie tak, a ponadto generują pliki WPT zawierające pozycje raportowanych komunikatów.
 +
[[Grafika:Sprawdz bledy.png|thumb|Przykład wyniku działania skryptu sprawdz_bledy.bat]]
[[Grafika:Sprawdz bledy.png|thumb|Przykład wyniku działania skryptu sprawdz_bledy.bat]]
'''Skrypt ''sprawdz_bledy.bat'' analizuje niektóre błędy''' w narysowanej mapie.
'''Skrypt ''sprawdz_bledy.bat'' analizuje niektóre błędy''' w narysowanej mapie.
Linia 16: Linia 19:
=== Ślepe ===
=== Ślepe ===
-
Skrypt wypisuje liczbę nieoznakowanych końców dróg. Na każdym końcu dróg, które nie kontynuują (i są zgłaszane przez skrypt), trzeba wstawić bojkę WATPLIWY albo SLEPY.
+
Skrypt wypisuje liczbę nieoznakowanych końców dróg. Na każdym końcu dróg, które nie prowadzą dalej (i są zgłaszane przez skrypt), trzeba wstawić bojkę WATPLIWY albo SLEPY.
'''Naprawa:''' W [[mapedit|mapedicie]] dodać (''Add...'') plik ''netgen-slepe.wpt'', który został wygenerowany przez ''sprawdz_bledy.bat''i sprawdzić, gdzie się pojawiły punkty i jeśli w tym miejscu powinno być skrzyżowanie, to dociągnąć ulicę do skrzyżowania (lub na poprzecznej dodać brakujący punkt), a jeśli skrzyżowania nie ma, tylko ulica kończy się ślepo, to dodać w tym miejscu właściwy znacznik. Szczegóły w artykule [[Znaczniki#Bojki|o znacznikach]].
'''Naprawa:''' W [[mapedit|mapedicie]] dodać (''Add...'') plik ''netgen-slepe.wpt'', który został wygenerowany przez ''sprawdz_bledy.bat''i sprawdzić, gdzie się pojawiły punkty i jeśli w tym miejscu powinno być skrzyżowanie, to dociągnąć ulicę do skrzyżowania (lub na poprzecznej dodać brakujący punkt), a jeśli skrzyżowania nie ma, tylko ulica kończy się ślepo, to dodać w tym miejscu właściwy znacznik. Szczegóły w artykule [[Znaczniki#Bojki|o znacznikach]].
Linia 23: Linia 26:
=== Za bliskie ===
=== Za bliskie ===
-
Podana liczba węzłów, które są zbyt blisko siebie. Do poprawnej nawigacji odległość między węzłami powinna wynosić co najmniej 7 metrów.
+
Podana liczba węzłów, które są zbyt blisko siebie. Do poprawnej nawigacji odległość między węzłami powinna wynosić co najmniej 5.5 metra.
-
'''Przypadek nr 1''' Prawie poprawnie narysowane drogi są zbyt blisko siebie, czyli węzły są zbyt blisko. Jeżeli narysujemy dwie nitki drogi (np. dwa kierunki) z węzłami położonymi naprzeciwko - pomiędzy którymi przechodzi inna droga, np. do zawracania to węzły zostaną zgłoszone jako położone za blisko.
+
'''Przypadek nr 1''' Prawie poprawnie narysowane drogi są zbyt blisko siebie, czyli węzły są zbyt blisko. Jeżeli narysujemy dwie nitki drogi (np. dwa kierunki) z węzłami położonymi naprzeciwko - pomiędzy którymi przechodzi inna droga, np. do zawracania, to imoże się okazać, że węzły zostaną zgłoszone jako położone za blisko.
-
'''Naprawa:''' W [[mapedit|mapedicie]] dodać (''Add...'') plik ''netgen-za_bliskie.wpt'', który został wygenerowany przez ''sprawdz_bledy.bat'' i sprawdzić, gdzie się pojawiły punkty i w tych miejscach poprawić odległość węzłów.
+
'''Naprawa:''' W [[mapedit|mapedicie]] dodać (''Add...'') plik ''netgen-za_bliskie.wpt'', który został wygenerowany przez ''sprawdz_bledy.bat'' i sprawdzić, gdzie się pojawiły punkty i w tych miejscach poprawić odległość węzłów rozsuwając je.
'''Przypadek nr 2''' Podczas rysowania nie połączono dwóch odcinków drogi - są bardzo blisko lub nawet się mijają - oba końce zostaną zgłoszone jako położone zbyt blisko.
'''Przypadek nr 2''' Podczas rysowania nie połączono dwóch odcinków drogi - są bardzo blisko lub nawet się mijają - oba końce zostaną zgłoszone jako położone zbyt blisko.
Linia 43: Linia 46:
=== Zygzaki ===
=== Zygzaki ===
[[Grafika:Zygzaki.png|thumb|Jak unikać zbyt ostrych skrętów]]
[[Grafika:Zygzaki.png|thumb|Jak unikać zbyt ostrych skrętów]]
-
Podana liczba zbyt ostrych skrętów. To może dotyczyć również zjazdów z rond rysowanych jedną kreską - jeżeli z ronda jest wyjazd i oddzielny wjazd to nie można rysować tego jedną linią - to powinny być dwie linie. W takim wypadku wystarczy zrobić operację podziału linii. Podział można też zrobić dla dowolnego zygzaka, ale wtedy wyjdzie poszatkowana ulica - sprawdź, czy jest ona na pewno dobrze narysowana, lepiej skorzystać z sugestii naprawy.
+
Podana liczba zbyt ostrych skrętów. To może dotyczyć również zjazdów z rond rysowanych jedną kreską - jeżeli z ronda jest wyjazd i oddzielny wjazd to nie można rysować tego jedną linią - to powinny być dwie osobne linie. W takim wypadku wystarczy podzielić linię. Podział można też zrobić dla dowolnego zygzaka, ale wtedy wyjdzie poszatkowana ulica - sprawdź, czy jest ona na pewno dobrze narysowana, lepiej skorzystać z sugestii naprawy.
'''Naprawa:''' W [[mapedit|mapedicie]] dodać (''Add...'') plik ''netgen-zygzaki.wpt'', który został wygenerowany przez ''sprawdz_bledy.bat'' i sprawdzić, gdzie się pojawiły punkty i w tych miejscach poprawić skręty według obrazka obok.
'''Naprawa:''' W [[mapedit|mapedicie]] dodać (''Add...'') plik ''netgen-zygzaki.wpt'', który został wygenerowany przez ''sprawdz_bledy.bat'' i sprawdzić, gdzie się pojawiły punkty i w tych miejscach poprawić skręty według obrazka obok.
Linia 61: Linia 64:
== sprawdz.awk ==
== sprawdz.awk ==
-
Wersja robocza.
 
-
 
-
Opisze co sprawdza skrypt sprawdz.awk
 
Jest on uruchamiany przez sprawdz_bledy.bat, netgen2.bat i mont-demont-multi2.pl
Jest on uruchamiany przez sprawdz_bledy.bat, netgen2.bat i mont-demont-multi2.pl
Linia 72: Linia 72:
* '''NazBMiast''' sprawdz--nazwy_bez_miast.wpt
* '''NazBMiast''' sprawdz--nazwy_bez_miast.wpt
-
Brak wpisu Miasto dla drogi której nadano nazwę. Aby można było wyszukać nazwę ulicy musi mieć przypisane miasto.
+
Brak wpisu Miasto dla drogi, której nadano nazwę. Aby można było wyszukać nazwę ulicy, musi mieć przypisane miasto.
* '''BadPhone''' sprawdz--zle_nr_telefonu.wpt
* '''BadPhone''' sprawdz--zle_nr_telefonu.wpt
Linia 118: Linia 118:
* '''ClsRondo''' sprawdz--nie_zamkniete_rondo.wpt
* '''ClsRondo''' sprawdz--nie_zamkniete_rondo.wpt
Wyłączone. Nie zamknięte rondo.
Wyłączone. Nie zamknięte rondo.
 +
 +
=== Autostrady bez kierunku ===
 +
 +
Raportowane są także odcinki autostrad, dróg szybkiego ruchu i ramp wjazdowych/zjazdowych, które nie mają ustawionego atrybutu drogi jednokierunkowej. Dlz autostrad (typ 0x1) i ramp szybkkich (0x9) zdecydowanie jest to błędem, w przypadku dróg dla pojazdów samochodowych (0x2) zdarzają się odcinki jednojezdniowe, które są dwukierunkowe. W takim wypadku należy dodać komentarz ";TwoWay", aby odcinek nie był raportowany jako brak jednokierunkowości. Analogicznie dla tyupu rampy wolnej - 0x8. Tutaj - w pierwszym rzędzie należy się zastanowić, czy użyty typ jest właściwy. Częstym przypadkiem jest rysowanie zjazdów z autostrad w ten sposób, że od autostrady odchodzą 2 nitki jednokierunkowe 0x8 (zjazd i wjazd), które dalej prowadzone sa wspólnie jako odcinek dwukierunkowy. Choć jest to poprawne formalnie (bo zjazd w obu kierunkach jest prowadzony drogą jednojezdniową z przeciwbieżnymi pasami rozdzielonymi podwójną linią ciągłą), to warto rozważyć rozrysowanie zjazdu/wjazdu jako dwóch niezależnych nitek jednokierunkowych. Wbrew pozorom, upraszcza to rysowanie mapy, bo można pominąć kilka zakazów, które w przeciwnym razie byłyby konieczne w celu zachowania poprawnych zassad routingu.

Wersja z dnia 11:44, 18 mar 2017


Do sprawdzania błędów służą skrypty występujące pod ogólną nazwą "sprawdz". W systemach Windows to będzie skrypt sprawdz_bledy.bat, natomiast w środowisku Unix jest odpowiedni sprawdz.awk, którego można wywołać np. za pomocą make sprawdz. Wyniki wszystkich tych sprawdzeń wyglądają podobnie -- skrypty przedstawiają wyniki działania na ekranie w postaci komunikatów mówiących co jest nie tak, a ponadto generują pliki WPT zawierające pozycje raportowanych komunikatów.

Przykład wyniku działania skryptu sprawdz_bledy.bat
Przykład wyniku działania skryptu sprawdz_bledy.bat

Skrypt sprawdz_bledy.bat analizuje niektóre błędy w narysowanej mapie.

Na koniec biegu skrypt wypisze wyniki analizy, liczbę błędów, które należy usunąć. Przykładowo:

Statystyka
 granica         9
 slepe          61
 za_bliskie     31
 zygzaki        30
 bledy           2
 przeciecia     15

Spis treści

Granica

Ślepe

Skrypt wypisuje liczbę nieoznakowanych końców dróg. Na każdym końcu dróg, które nie prowadzą dalej (i są zgłaszane przez skrypt), trzeba wstawić bojkę WATPLIWY albo SLEPY.

Naprawa: W mapedicie dodać (Add...) plik netgen-slepe.wpt, który został wygenerowany przez sprawdz_bledy.bati sprawdzić, gdzie się pojawiły punkty i jeśli w tym miejscu powinno być skrzyżowanie, to dociągnąć ulicę do skrzyżowania (lub na poprzecznej dodać brakujący punkt), a jeśli skrzyżowania nie ma, tylko ulica kończy się ślepo, to dodać w tym miejscu właściwy znacznik. Szczegóły w artykule o znacznikach.

Uwaga!!! Nie każdy odcinek drogi ślepy musi kończyć się bojką - tylko te odcinki, które są zgłaszane przez sprawdz_bledy.bat lub te, które chcemy wskazać innym edytorom, że w tym miejscu jest prawdziwy ślepy odcinek. W miejscach, gdzie ślepa jest dlatego, że są barierki/krawężnik, ale od innej drogi jest kilka-kilkanaście metrów i jest przejście dla pieszych (i/lub rowerów), zamiast stawiać bojkę, dorysuj brakujący fragment typem "chodnik" (0x16)

Za bliskie

Podana liczba węzłów, które są zbyt blisko siebie. Do poprawnej nawigacji odległość między węzłami powinna wynosić co najmniej 5.5 metra.

Przypadek nr 1 Prawie poprawnie narysowane drogi są zbyt blisko siebie, czyli węzły są zbyt blisko. Jeżeli narysujemy dwie nitki drogi (np. dwa kierunki) z węzłami położonymi naprzeciwko - pomiędzy którymi przechodzi inna droga, np. do zawracania, to imoże się okazać, że węzły zostaną zgłoszone jako położone za blisko.

Naprawa: W mapedicie dodać (Add...) plik netgen-za_bliskie.wpt, który został wygenerowany przez sprawdz_bledy.bat i sprawdzić, gdzie się pojawiły punkty i w tych miejscach poprawić odległość węzłów rozsuwając je.

Przypadek nr 2 Podczas rysowania nie połączono dwóch odcinków drogi - są bardzo blisko lub nawet się mijają - oba końce zostaną zgłoszone jako położone zbyt blisko.

Naprawa: dociągnąć do siebie dwa odcinki drogi lub uznać, że nie ma połączenia i postawić bojki (jeżeli tak jest w rzeczywistości).

Przypadek nr 3 Dotyczy rond. Zajrzyj na stronę o rondach.

Naprawa: rozciąć rondo zgodnie z sugestią na stronie o rondach.

Przypadek nr 4 Też dotyczy rond. Nie musisz rysować wszędzie rozdzielonych wjazdów/zjazdów na ronda, zwłaszcza te malutkie, bo nie zmieścisz się z węzłami routingu.

Naprawa: zrezygnuj z rozgałęzionych wjazdów/zjazdów lub... powiększ rondo.

Zygzaki

Jak unikać zbyt ostrych skrętów
Jak unikać zbyt ostrych skrętów

Podana liczba zbyt ostrych skrętów. To może dotyczyć również zjazdów z rond rysowanych jedną kreską - jeżeli z ronda jest wyjazd i oddzielny wjazd to nie można rysować tego jedną linią - to powinny być dwie osobne linie. W takim wypadku wystarczy podzielić linię. Podział można też zrobić dla dowolnego zygzaka, ale wtedy wyjdzie poszatkowana ulica - sprawdź, czy jest ona na pewno dobrze narysowana, lepiej skorzystać z sugestii naprawy.

Naprawa: W mapedicie dodać (Add...) plik netgen-zygzaki.wpt, który został wygenerowany przez sprawdz_bledy.bat i sprawdzić, gdzie się pojawiły punkty i w tych miejscach poprawić skręty według obrazka obok.

Naprawa zygzaka przy rondzie: Podzielić zygzak na dwie linie.

Błędy

Przecięcia

Podana liczna nieoznakowanych przecięć dróg. Możliwe są dwie przyczyny:

  1. W miejscu przecięcia trzeba zrobić skrzyżowanie dwóch dróg
  2. W miejscu przecięcia jest wiadukt i trzeba tam wstawić bojkę WIADUKT (zielona, kod 0x1709).

Naprawa: W mapedicie dodać (Add...) plik netgen-przeciecia.wpt, który został wygenerowany przez sprawdz_bledy.bati sprawdzić, gdzie się pojawiły punkty i w tych miejscach zrobić albo skrzyżowanie, albo wstawić właściwy znacznik.


sprawdz.awk

Jest on uruchamiany przez sprawdz_bledy.bat, netgen2.bat i mont-demont-multi2.pl

Konwencja zapisu:

  • Początek nazwy punktu plik który powstaje ze sprawdz_bledy i netgen2

krótki opis


  • NazBMiast sprawdz--nazwy_bez_miast.wpt

Brak wpisu Miasto dla drogi, której nadano nazwę. Aby można było wyszukać nazwę ulicy, musi mieć przypisane miasto.

  • BadPhone sprawdz--zle_nr_telefonu.wpt

Zły numer telefonu, prawidłowy format to +48kknnnnnnn, +48kkknnnnnn, dopuszczone są wyjątki dla numerów specjalnych 3 i 5 cyfrowych (alarmowe, taxi, infolinie, itp) w postaci: nnn, +48kknnnnnn. Gdzie: +48 - prefix kraju(dla polski); kk - numer kierunkowy; nnn - pozostałe cyfry

  • NoFile sprawdz--elementy_bez_pliku.wpt

Elementy które po zapisaniu pracy trafią do pliku !nowosci. We właściwościach w zakładce "extras" dopisz właściwą pozycje Plik= aby trafiły tam gdzie trzeba.

  • RondBKier sprawdz--ronda_bez_kierunku.wpt

Wykazuje ronda dla których nie ustawiono kierunku. Routing może cie skierować pod prąd na rondzie.

  • Ele0x0 sprawdz--elementy_0x0.wpt

Elementy bez ustawionego typu, w mapedicie nowe pozycje dostają domyślnie typ 0x0. Ustaw właściwy typ.

  • Drog~Poz0 sprawdz--drogi_wyzej_niz_0.wpt

Znaleziono drogi na innym poziomie niż 0, co najczęściej jest błędem.

  • ElPoz1 sprawdz--elementy_na_poziomie_1.wpt

Elementy na poziomie 1 w plikach. (?) Niektóre polygony wyjątkowo są na innym poziomie niż 0.

  • ObszWDrog sprawdz--obszary_w_plikach_drog.wpt
  • POIwDrog sprawdz--POI_w_plikach_drog.wpt

Obszary(polygon) / punkty(poi) w plikach OBSZAR.drogi.txt lub MIASTO.ulice.txt. Przenieś elementy do odpowiednich plików.

  • OneWay sprawdz--OneWay_w_zakl_routing.wpt

Ustawienia One Way w zakładce Routing dla dróg, mapedit nie dodaje tych fajnych strzałek przy ustawionej tylko tej opcji. Użyj tylko (i wyłacznie) "Polyline has direction" na zakładce "properties" we właściwościach drogi.

  • WpisyRou sprawdz--smieci_z_polacz_wezly.wpt

Wpisy routingowe (RoadID) w pliku. Użycie 'Generate routing graph' i 'Connect to nearest Nodes' psuje źródła. Po użyciu tych opcji raczej trudno jest przywrócić dane do użytku. Zacznij pracę od początku.

  • Joined sprawdz--elementy_joined.wpt

Wielokrotne Data0 w pliku. Używaj 'Merge' zamiast 'Join', Join nie łączy fizycznie dróg, często można zrobić na nich zapętlenia, ale nie będzie tego widać. "Extract element" pomaga w tym wypadku.

  • Lab2Only sprawdz--Label2_bez_Label.wpt

Obecny Label1= lub Label2= bez Label=, komunikaty w navi szaleją. Teraz Label1 i Label2 są najczęściej zbędne bo są robione przez automat.

  • NoRouteKom sprawdz--brak_komentarza_RouteParam.wpt

Brak komentarza do zmiany RouteClass i/lub SpeedLimit w zakładce Routing. Takie zmiany bardzo trudno zauważyć podczas normalnej pracy, wiec powinny być one komentowane. Komentarz powinien zaczynać się od słowa Routing:


Wyłączone po dyskusjach, istnieje możliwość włączenia.

  • BigNodNo sprawdz--duza_ilosc_nodow.wpt

Wyłączone. Za duża ilość nodów w jednej polilini(drodze)

  • ClsRondo sprawdz--nie_zamkniete_rondo.wpt

Wyłączone. Nie zamknięte rondo.

Autostrady bez kierunku

Raportowane są także odcinki autostrad, dróg szybkiego ruchu i ramp wjazdowych/zjazdowych, które nie mają ustawionego atrybutu drogi jednokierunkowej. Dlz autostrad (typ 0x1) i ramp szybkkich (0x9) zdecydowanie jest to błędem, w przypadku dróg dla pojazdów samochodowych (0x2) zdarzają się odcinki jednojezdniowe, które są dwukierunkowe. W takim wypadku należy dodać komentarz ";TwoWay", aby odcinek nie był raportowany jako brak jednokierunkowości. Analogicznie dla tyupu rampy wolnej - 0x8. Tutaj - w pierwszym rzędzie należy się zastanowić, czy użyty typ jest właściwy. Częstym przypadkiem jest rysowanie zjazdów z autostrad w ten sposób, że od autostrady odchodzą 2 nitki jednokierunkowe 0x8 (zjazd i wjazd), które dalej prowadzone sa wspólnie jako odcinek dwukierunkowy. Choć jest to poprawne formalnie (bo zjazd w obu kierunkach jest prowadzony drogą jednojezdniową z przeciwbieżnymi pasami rozdzielonymi podwójną linią ciągłą), to warto rozważyć rozrysowanie zjazdu/wjazdu jako dwóch niezależnych nitek jednokierunkowych. Wbrew pozorom, upraszcza to rysowanie mapy, bo można pominąć kilka zakazów, które w przeciwnym razie byłyby konieczne w celu zachowania poprawnych zassad routingu.