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ć).
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.
Punkty na drodze to węzły, które mogą być początkiem lub końcem Twojej drogi. Kliknij na drugą drogę.
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.
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.
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.
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
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
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
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
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
Parametry adresowe - wymagane przy POI, dla obiektów typu droga - bez znaczenia.
zakładka Routing
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
tu na razie nie ma nic ciekawego - tu znajdą się informacje o źródle, skąd pochodzi droga, np. została skonwertowana ze śladu.
zakładka Extras
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ć.
Usuwanie nadmiarowych punktów - generalizacja
Nim pierwszy raz użyjesz tej funkcji spróbuj narysować kilkaset dróg w standardowy sposób. Nie jest to coś złego, ale jest zbyt proste w użyciu i kuszące - jak schody ruchome prowadzące do ośrodka fitnes. Ślad możesz skonwertować do wybranego typu linii. Ślad zawsze posiada dużo za dużo punktów. Każdy punkt to obciążenie dla systemu. By się ich pozbyć, gdy droga powstała w wyniku konwersji ze śladu - wybierz opcję (w trybie edycji węzłów) Generalize nodes Po tej operacji pozostanie znacznie mniej punktów nadmiarowych.
Odwracanie kierunku linii
Koniec staje się początkiem, początek końcem. Wykonywane w trybie edycji węzłów - Reverse polyline.
Kiedy odwracamy linię:
- gdy droga jest jednokierunkowa i ma niewłaściwy kierunek (wtedy też może zmienić się adresacja);
- gdy robimy autostradę, mamy jedną nitkę, drugą kopiujemy i zmieniamy kierunek nitki na odwrotny - to taka uwaga na wyrost, w końcu nie codzień dodaje się autostradę, ale dobrze o tym wiedzieć;
- gdy łączymy dwie linie - wtedy kierunek ma znaczenie... chyba.
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.
Rysowanie ze śladu
Masz ślad - swój lub od kogoś innego - np. wziąłeś jakiś ślad ze zgłoszenia na FlySpry - testowo lub z zamiarem narysowania. Czytając ten dokument prawdopodobnie nie jesteś jeszcze edytorem = nie masz prawa do przejęcia zgłoszenia, co zabezpiecza przed narysowaniem tego przez kogoś innego - w takim wypadku przynajmniej napisz komentarz, że chcesz to narysować i poczekać na czyjąś reakcję lub zaryzykować narysownie (w końcu się uczysz).
Jeżeli chcesz narysować coś od kogoś i są to początki - nie rysuj niczego dużego - to jest męczące, dopiero jako 3-4 pracę bez błędów bierz się za coś większego.
Dodanie śladu
Możesz dodać z kilku źródeł:
- plik gpx - może zawierać wiele dróg, wiele POI;
- plik gdb - natywny Garmina - podobnie wiele dróg, wiele POI;
- inne formaty - temat na później - na tym etapie tego nie wykorzystasz.
Jak dodajemy - pierwsza ikonka - otwierający się folder z czerwonym plusem lub File -> Add.... Po wybraniu pliku możesz otrzymać ostrzeżenie, że od tego momentu nie będzie można cofnąć dotychczas wykonanych operacji - Yes akceptujesz to, No odrzucasz, ale jeżeli musisz to zrobić - zaakceptuj.
Mapa "odjedzie" do jakiegoś wysokiego poziomu, np. Level 4 - musisz ponownie się zbliżyć. Gdzie masz się przybliżyć? Jeżeli wiesz gdzie, zbliż się, jeżeli nie wiesz - naciśnij E, które pokazuje dodatki - włącza je i wyłącza (mogą przeszkadzać w pewnych warunkach). Widzisz gdzie są te zmiany? U mnie mają one kolor czerwony.
Mówiąc szczerze to i tak jest zbliżone - jesteśmy na poziomie 4 - widzisz czerwoną zmianę na granicach miasta? Czasami ta zmiana jest jeszcze mniejsza.
Tu oznaczyłem kółkiem - jeżeli nie zauważyłeś wcześniej - teraz jest jak na dłoni. Przybliżmy się - tak zgrubnie (Z(oom)).
Widzisz gdzie będą zmiany? To jakieś dwie drogi. Na poziomie drugim część dróg nie styka się z innymi... dlaczego? Bo ich fragmenty nie są widoczne na poziomie 2, choć inne są widoczne. To właśnie daje EndLevel=2 lub wyższy - to jest ewidentnie do korekty. Co więcej - obszar miasta (szara plama) zniknie jak się zbliżymy jeszcze bardziej, więc zróbmy to - zbliżmy się do jednej z dróg.
Widzisz? Są bojki tęczowe oznaczające niepewny koniec drogi (taki mają zresztą typ, NIEPEWNY), jest słoneczko - zielone - że potrzeba dokończyć, że potrzeba śladu - jechałem na rowerze i widziałem w prawo drogę, którą zresztą jechałem już kilka razy, ale tak się złożyło, że nie mam śladu - nie zapisały się na karcie (limit 255 plików w głównym katalogu karty, ech...), więc zostawiłem słoneczko - by ktoś tu dorysował brakujący fragment.
Teraz musisz się zastanowić co z tym fantem począć. Co bym zrobił ja:
- usunąłbym bojki i słoneczko - już nie będą potrzebne;
- chwyciłbym za fragment drogi typu 0x07 (w trybie M) i dociągnął do śladu, więc... zróbmy to. W kolejnych oknach kolejne etapy. Pamiętaj - ślad/podkład wyłączamy klawiszem E
Ślad - wykorzystanie istniejącego odcinka - edycja
A więc jakbym to zrobił, kolejne kroki: (zapomniałem przejść do sztywnego poziomu 0, to błąd, zmienię w trakcie)
- krok 1 - usunięcie bojek - bojki nie będą już potrzebne, wybieramy, klawisz delete, nie ma bojek, w razie pomyłki zawsze jest Undo, czyli Ctrl-Z
- krok 2 - wyciągniemy drogę, która najbardziej (z mojego punktu widzenia) nadaje się do wyciągania - jest krótka, na niej trzeba zrobić najmniej zmian (zaznaczyłem ją w trybie edycji węzłów). Można rysować jako nową drogę, ale:
- musimy ją połączyć z drogą, którą teraz wyciągamy - statycznie przez merge lub dynamicznie - bez połączenia - dodatkowa praca;
- dla systemu to więcej zmian
- krok 3 - pierwszy duży krok ludzkości - docelowe dociągnięcie
- krok 4 - krok pośredni, który jest tylko po to, by pokazać, że jak zaczynamy łamać drogę to punkty same się pojawiają na drodze :) i droga jest dociągana do śladu oraz do obiektów, priorytet zawsze mają obiekty, ale czasami dociąga się do śladu zamiast do obiektów
- krok 5 - dokładne wyciągnięcie drogi - dociągnięcie do śladu - powstało moim zdaniem wystarczająco dużo punktów - niektórzy powiedzą - za dużo, inni - za mało - dla mnie ok
- krok 6 - klawiszem E wyłączyłem dodatki, czyli podkład do rysowania - jedna z dróg nie jest dociągnięta do naszej nowej powyginanej drogi, a-ha! mamy ją - kompilator później zgłosiłby błąd
- krok 7 - robimy zoom w tę okolicę - Z i wybór myszką obszaru
- krok 8 - w trybie edycji węzła - wybieramy drogę, którą będziemy dociągać, ale jeszcze tego nie robimy - tu odcinek jest krótki, ale by jej nie zniszczyć potrzebujemy punktu
- krok 9 - dodajemy punkt - dzięki niemu unikniemy zmiany geometrii drogi;
- krok 10 - w końcu dociągamy
- krok 11 - oddalamy się i rzut oka jak to wygląda - co nas razi, co jeszcze nie zostało zrobione?
- krok 12 - żegnaj napisie {tmp} który sugeruje ślad robiony z dziwnych źródeł, rysowany by coś było - dwuklik na drogę i czyszczenie pola label - Extras jest wypełnione, więc tam możemy, ale nie musimy zajrzeć, można rzucić okiem na Elements, czy EndLevel to 1
- krok 13 - dzielimy drogę (split polyline), bo część to 0x07, część to 0x0a
- krok 14 - zmieniamy typ drogi na 0x0a
A co z poziomem 0, nie ustawionym na sztywno? Ano dopiero w kroku 11 to skorygowałem - niezły samouczek, nie? Poziom 0 ustawiony na sztywno jest dobrym zwyczajem, bo jak się zapomni i narysuje na poziomie 1 sieć dróg, to później trzeba je będzie edytować, a po co dodatkowe kroki?
Zakładając, że drugi ślad został obrobiony można:
- zapisać
- uruchomić sprawdz_bledy.bat
- usunąć błędy (najpierw swoje - inne może są na chwilę...)
- zapisać
- zamknąć ME
- jak się "samo" nie rozmontuje to rozmontować i wysłać pliki na FS.