Użytkownik:Micra/piaskownica

Z UMP

Spis treści

Edycja mapy - wersja uproszczona

  • uruchomić okno - cmd
  • zmienić katalog na docelowy, np. d:\garmin\ump\ump-pl-lublin
  • aktualizacja źródeł - cvs_update.bat
  • pełny cykl - montowanie, edycja, rozmontowanie - mont-demont.bat
    • montowanie mapy - na podstawie pobranych źródeł
    • rysowanie w programie zależnie od skonfigurowanej zmiennej mapedit lub mapedit++
    • zapisanie mapy (ciągle w MapEdit)
    • weryfikacja mapy (MapEdit ciągle pozostaje włączony) - sprawdz_bledy.bat lub make sprawdz
    • poprawki mapy na podstawie sprawdz_bledy
    • zapisanie mapy
    • zamknięcie ME
    • następuje automatyczne rozłożenie mapy, a w katalogu bazowym, w tym wypadku d:\garmin\ump\ump-pl-lublin powstają:
      • pliki różnicowe (z diff w nazwie);
      • nowe wersje plików źródłowych (bez diff);
      • pliki sierotki, które zawierają nieprzypisane obiekty, a więc _nowosci.txt (nieprzypisane ulice i ściezki, także obszary) oraz _nowosci.pnt (nieprzypisane punkty)
      • jeżeli mamy pliki sierotki to albo ręcznie wrzucamy ich zawartość do plików właściwych, albo ponownie otwieramy MapEdit do edycji - sierotek być jednak nie powinno - sprawdz_bledy.bat powinien je wykryć.
  • jeżeli już wszystko jest ok to nowe pliki źródłowe kopiujemy do katalogu źródeł, w tym wypadku d:\garmin\ump\ump-pl-lublin\src
  • puszczamy cvs_update.bat - by wykryć czy nie ma konfliktów
  • jeżeli ok to robimy commit, czyli ..\cvs com -m "treść informacyjna"

Edycja mapy - wersja rozszerzona

To właściwie to samo co wersja uproszczona, tylko z uwagami, a więc:

  • od momentu zmontowania źródeł nie wolno robić cvs_update.bat, bo w ten sposób nadpiszemy czyjąś pracę - o tym dlaczego - dalej w tekście;
  • od momentu zmontowania źródeł możemy puszczać dowolną ilość razy sprawdz_bledy.bat - podstawą jego działania jest zapisana wersja pliku mp (zmontowanej mapy) - jeżeli coś zmieniliśmy, nie zapisaliśmy, a został puszczony sprawdz_bledy.bat to nie sprawdzi naszych zmian;
  • jeżeli zostanie uruchomiony proces demontowania to tak na prawdę jedyną rzeczą, która się stanie będzie wydzielenie plików zmienionych (bez diff) oraz plików różnicowych (diff)
  • jeżeli po demontowaniu uruchomimy proces ponownego demontowania to proces demontowania wykona się ponownie, pliki zmienione i różnicowe zostaną zapisane ponownie;
  • możemy wejść ponownie do edycji mapy ręcznie lub z pomocą mont-demont.bat z parametrem edycja, ale później trzeba wykonać demontowanie (o sprawdzaniu błędów oczywiście nie zapominamy)
  • dopiero po skopiowaniu plików zmienionych do źródeł (src) można zrobić cvs_update.bat, by dowiedzieć się, czy są konflikty, rozwiązać je i później zrobić commit

Rysowanie - pierwsza droga

Co narysować

Najlepiej coś, co znasz, do czego masz źródła. Najlepiej dwie, trzy drogi na początek i muszą być z czymś połączone. Mogą być to ścieżki, może być fragment drogi - może akurat obok Ciebie jest blisko droga prosta jak drut, której nie ma, a która jest między punktami A i B, które już są na mapie, np. dwa skrzyżowania, między którymi jest droga, ale nie ma jej na mapie. Może być to ścieżka leśna, polna droga, cokolwiek, co masz, nada się.

Jeżeli chcesz - narysuj drogę jak w przykładzie. Nie ma jej tam, ale możesz powtórzyć dokładnie to samo co ja - po prostu wybrałem takie miejsce na mapie. Jeżeli ktoś nawet to umieści przez pomyłkę na mapie to powiedz mu o tym, że tutaj drogi nie ma, to ją usunie.

Od czego nie zaczynać

Od rond (nie są trudne, ale mają wpływ na inne drogi). Od autostrad, zjazdów z autostrad i różnych wymyślnych ślimaków - nie są trudne, ale one też mają wpływ na dużo innych rzeczy. Od kilku gęsto położonych dróg/ścieżek - jeżeli będziesz chciał nanieść co 5-10 metrów drogi - są pewnie takie miejsca - to natrafisz na inne problemy. Nie warto od tego zaczynać.

Zaczynamy

Posiadasz zmontowane źródła, uruchomiony MapEdit (lub MapEdit++, dalej będę nazywał je skrótem ME). Pierwsze kroki to:

  • przybliżenie się do interesującego obszaru - narzędzie lupa lub klawisz Z(oom)
  • włączenie stałego poziomu rysowania = 0 - klawisz 0(zero!) - w pasku ME będzie widoczna informacja o stałym poziomie *Level0

Widzisz w przybliżeniu taki układ dróg (N51°18.276' E22°33.603' lub 51.30555, 22.56033 lub na www). Jak w ME znaleźć się w konkretnym miejscu? Ctrl-G i podajesz współrzędne, później tylko się zbliż, po zbliżeniu możesz ponownie podać współrzędne (po Ctrl-G), bo zbliżanie minimalnie Cię przesunie - kwestia zaokrąglenia. ME "lubi" drugi format (najłatwiej jest go wprowadzać).

Grafika:Nodes001.png

Droga, którą narysujesz, nie będzie wisieć w przestrzeni, zwykle można do niej dojechać i pojechać gdzieś dalej, więc początek i koniec musi mieć połączenie z innymi drogami (poza drogami ślepymi rzecz jasna). Na ekranie nie widać żadnych konkretnych punktów, do których możesz się podłączyć. Musisz przejść w tryb edycji węzłów - klawisz M(odify nodes) lub ikona po lewej stronie ikony z magiczną pałeczką. Kliknij na jedną z dróg.

Grafika:Nodes002.png

Punkty na drodze to węzły, które mogą być początkiem lub końcem Twojej drogi. Kliknij na drugą drogę.

Grafika:Nodes003.png

Analogicznie - Twoja droga może mieć początek lub koniec tylko w tych punktach. Jeżeli brak punktu to można go dodać (lub usunąć, jeżeli jest punktów za dużo). Załóżmy, że sytuacja jest idealna, że narysujemy między dwoma istniejącymi punktami. Przejdź w tryb rysowania - przy pomocy magicznej pałeczki lub klawiszem B(nie wiem dlaczego B, ale tak jest). Zmieni się kursor. W ME++ możesz jeszcze włączyć przyciąganie do punktu. Tak, powinieneś włączyć przyciąganie do punktu, ale nie przyciąganie do siatki.

Grafika:Nodes004.png

Na ekranie widać włączony tryb przyciągania do punktu (pasek narzędziowy Snap to... z pierwszą włączoną ikonką). Kursorem już najechałem na punkt i zmienił się w kwadrat otaczający punkt, od którego nastąpi rysowanie. Klikamy i puszczamy klawisz myszy. Początek drogi już jest.

Grafika:Nodes005.png

Teraz należy narysować drogę właściwą - tu każda droga jest inna, nie należy przesadzać z ilością punktów. Więcej punktów to więcej danych, dłużej czasu nawigacja to rysuje, podobnie i mapa na www jest dłużej rysowana. Droga powinna mieć jednak kształt zbliżony do śladu. Gdy przejedziesz pierwszy raz swoją własną drogą to zobaczysz, których szczegółów nie widać, a które tak.

Grafika:Nodes006.png

Narysowane. Kliknąłem w punkt docelowy - jak zakończyć drogę? Enter (Backspace na klawiaturze wycofuje ostatni węzeł - można tak się cofać, Cancel - otwiera menu podręczne kontekstowe - można drogę usunąć lub wybrać np. usunięcie ostatniego węzła) - naciskamy jednak Enter

Grafika:Nodes007.png

Pojawia się okno z pytaniem o typ obiektu - w tym wypadku drogi. Nie mam zaznaczonego pola Show only used types więc widzę wszystkie możliwe zdefiniowane typy obiektów, gdybym miał zaznaczone to pole to widziałbym tylko typy używane w pobliżu - na danym obszarze. Warto zaznaczyć. Wybrałem drogę asfaltową typu 0x0006, w skrócie 0x06 lub 0x6 (Zobacz przykłady). Enter

Grafika:Nodes008.png

Przy obiekcie pojawiło się pole wprowadzania danych - możemy od razu nadać nazwę drodze (o ile posiada) lub obiektowi, który narysowaliśmy (POI lub obszar). Jeżeli nazwy brak to Enter.

Edycja parametrów drogi

Jest droga, co dalej? Proponuję przejrzeć jej parametry lub właściwości - klawisz S(elect) przechodzi w tryb selekcji obiektów (strzałka), dwuklik na drodze.

Otwiera się okno z zakładką Properties (domyślnie otwiera się ostatnio otwierana - pomocne przy wielu edycjach podobnych obiektów).


zakładka Properties

Grafika:Nodes009.png

To pierwsza zakładka - wartości podstawowe obiektu - nazwa ulicy czy POI znajduje się w polu Label. Polyline has direction oznacza dokładnie to, co oznacza, czyli że jest to droga jednokierunkowa - jeżeli zaznaczysz to pole i zamkniesz okno na drodze pojawi się strzałka kierunkowa - w tym miejscu definiujemy kierunkowość ulic.

zakładka Elements

Grafika:Nodes010.png

Lista części składowych obiektu - w 99% przypadków będzie to obiekt jednoelementowy. Dodatkowo tu można określić do jakiego poziomu droga/obiekt będzie widoczny (All elements are extended to levels up to) - ustaw 1 dla dróg, by było je widać nie tylko na dużych zbliżeniach, ale nie więcej niż 1, by nie było zbyt zamazanej mapy przy bardzo dużych oddaleniach. Jeżeli ustawisz tu np. 9 to droga (nie sprawdzałem) będzie widoczna na mapie Świata.

zakładka Address

Grafika:Nodes011.png

Parametry adresowe - wymagane przy POI, dla obiektów typu droga - bez znaczenia.

zakładka Routing

Grafika:Nodes012.png

Trzecia zakładka - ograniczenia routingu. Tu możesz określić kto może, a kto nie może się poruszać po danym typie drogi, np. zakaz ruchu dla ciężarówek. Tu nie określasz kierunkowości ulicy!

zakładka Source

zakładka Extras

Grafika:Nodes013.png

Ostatnia zakładka, chyba najważniejsza - definiujemy z czym powiązany jest dany obiekt. W tym wypadku droga w obrębie UMP-PL-Lublin leży poza miastem więc jest przypisana do dróg nienazwanych - powinna być umieszczona w pliku src\LUBLIN.drogi.txt (gdyby leżała w obszarze UMP-PL-Katowice to powinna być umieszczona w pliku... tak! src\KATOWICE.drogi.txt - to musisz jednak sprawdzić, są odstępstwa). By nie wpisywać tego z palca zrób dwuklik na górnym polu, którego nie możesz edytować i wybierz z podpowiedzi - właściwą lub najbliższą i tylko uzupełnij. Jeżeli droga miałaby nazwę, czyli byłaby ulicą to musisz uzupełnić - dodać tag Miasto=<nazwa miasta>. Jeżeli ulica należy do większego miasta, które ma swój własny plik, np. src\LUBLIN.ulice.txt to nie musisz dodawać tagu Miasto=Lublin, bo ten tag jest już zdefiniowany globalnie w pliku Lublina.

Jeżeli narysowałeś(aś) drogę tak jak ja to po rozmontowaniu powinny powstać dwa pliki:

  • LUBLIN.drogi.txt
  • LUBLIN.drogi.txt.diff

Jeżeli powstał plik _nowosci.txt to znaczy dokładnie tyle, że zakładka Extras jest pusta lub zawiera błędy.

Rysowanie - edycja węzłów

Dodanie węzła

W trybie edycji węzłów (klawisz M) prawym klikasz na linii/obszarze, gdzie ma powstać punkt i z menu kontekstowego wybierasz Insert node here. Jeżeli trafisz w węzeł to będzie dostępna opcja usunięcia węzła Delete node.

Do punktu możesz dociągnąć inną drogę - punkt sam w sobie nie jest później widoczny poza trybem edycji węzłów i może służyć dodatkowo do definiowana adresacji na danej ulicy.

Usunięcie węzła

Opisane w poprzednim punkcie - prawy klawisz myszy w istniejący węzeł i z menu kontekstowego wybierasz Delete node, jeżeli nie trafisz to zobaczysz opcję Insert node here czyli tworzenie nowego węzła.

Jakie konsekwencje niesie usunięcie punktu:

  • likwidacja punktu adresowego - bardzo poważne zagrożenie - na etapie, gdy nie masz uprawnień do zapisu - osoba wrzucająca za Ciebie dane na serwer będzie musiała Cię wspomóc; też możesz to naprawić, ale być może tak będzie szybciej; do sprawdzania błędów adresowych (i innych) służy sprawdz_bledy.bat
  • likwidacja punktu styku dla innej drogi - tu musisz wykazać się ignorancją... lub ... być na poziomie innym niż 0 i być przekonanym, że usuwasz punkt, który nie ma żadnego sensu;
  • zmiana geometrii drogi.

Przesunięcie węzła

To najbardziej skomplikowana operacja :) Łapiesz i przesuwasz - jeżeli masz włączone dociąganie do punktów to dociągnie do najbliższego o ile za bardzo się zbliżysz. === Dzielenie linii === [Dzielenie linii] Dlaczego tutaj? No, bo to operacja na węzłach. W trybie edycji węzłów (klawisz M) prawy klawisz myszy na węźle, wybierasz opcję Split polyline i już. Jak cofnąć operację? Undo, czyli Ctrl-Z. Jeżeli kiedyś, później będziesz chcieć to zrobić to można linie połączyć.

Rysowanie - edycja linii

Łączenie linii

Łączenie linii wykonywane jest w trybie wyboru obiektów S(elect). Pierwszą linię zaznaczasz klikając na niej, drugą trzymając klawisz Ctrl. Pierwsza zaznacza się na niebiesko (u mnie), druga na zielono (u mnie). Z menu kontekstowego wybierasz Merge Polylines i już.

Kusząco wygląda opcja Join Objects. Wbrew pozorom to nie jest to samo - po operacji join otrzymujesz obiekty zgrupowane, które możesz razem przesuwać, które funkcjonują jako jeden obiekt (na zakładce Elements' będą wtedy połączone obiekty wyszczególnione). Przy operacji merge obiekty będą stanowiły jedność - linie zostaną dociągnięte.

Dzielenie linii

Dzielenie linii wykonujesz w trybie edycji węzłów (M). Zaznaczasz punkt, w którym nastąpi podział, z menu kontekstowego (prawy klawisz myszy) wybierasz Split Polyline.

Kiedy wykonujemy dzielenie linii:

  • gdy droga ma różne rodzaje nawierzchni na swojej długości - np. część to 0x06 (asfalt), a część to 0x07 (płyty), dalej przechodzi w 0x0a (gruntową) - będą co najmniej trzy odcinki, każdy powinien nosić tę samą nazwę (by nawigacja kierowała nas do każdego z odcinków ulicy) - nazwa i pozostałe parametry są dziedziczona przez dwa nowe odcinki powstałe z podziału;
  • gdy się okazuje, że część za skrzyżowaniem to już nie jest Iksińskiego, ale Kowalskiego;
  • gdy jest remont i nie da się przejechać - wtedy powstaje dziura:
    • dodajesz dwa węzły na początku i końcu odcinka do usunięcia;
    • w węzłach robisz podział;
    • tak otrzymany odcinek usuwasz bez skrępowania (operację zawsze możesz cofnąć);
    • wstawiasz bojki i rejestrujesz na FlySpry zgodnie z Remonty.

Negatywne skutki podziału linii:

  • więcej danych;
  • jeżeli nie ma informacji o punktach adresowych to nawigacja będzie proponować każdy z odcinków.