Jak przypisać do miejscowości kilka obiektów na raz
Z UMP
Spis treści |
Wstęp
Zadaniem opisanych poniżej czynności jest uproszczenie i przyspieszenie procesu przypisania obiektów (ulic lub punktów POI) do miejscowości. Wykorzystywane są do tego narzędzia, dostępne w UMP oraz funkcje programu MapEdit.
Potrzebne narzędzia
Niestety klikane skrypty do montowania i demontowania w windowsie nie są w stanie nam pomóc, dlatego trzeba będzie się zaopatrzyć w perla i korzystać z perlowego skryptu mont-demont-multi2.pl lub jego graficznego odpowiednika mdm-gui.pl.
Teraz nowe ME2 pozwala zmieniać dowolne ekstrasy dla zaznaczonych obiektów. Po zaznaczeniu kilku obiektów tego samego typu (poi/droga) drugi klawisz myszy Modify> Extras > Add... lub Edit...
Zmiana miast bywa jednak wygodniejsza przy użyciu dedykowanych do tego funkcji dostępnych w edytorze, ale silnie zależy od przygotowanego pliku edycyjnego. I tu przydaje się perl czy też mont-demont -idx.
Jak zainstalować i skonfigurować perla w windowsie możesz przeczytać tutaj. Pod uniksem standardowa metoda montowania wykorzystuje perlowy mont-demont-multi2.pl, więc jest OK.
Montowanie i przypisanie do miast
Montowanie źródeł przy pomocy mont-demont-multi2.pl różni się odrobinę od standardowej metody stosowanej przez większość widnowsiarzy: klikania (chociaż od czasu pojawienia się graficznej nakładki na mont-demont-multi2.pl - mdm-gui.pl, już nie). Niestety trzeba będzie odrobinę popisać w konsoli, co w systemie ze stajni MS nie należy niestety do przyjemności. Oto co należy zrobić kolejno (użytkownicy uniksów oraz mdm-gui.pl mogą przejść od razu do punktu 4).
1) Otwieramy konsolę:
menu start->uruchom->cmd
2) Przechodzimy do katalogu w którym znajdują się źródła
cd c:\sciezka\do\zrodel
3) Ustawiamy zmienną wskazującą położenie źródeł:
set cvs=c:\sciezka\do\zrodel
4) Montujemy źródła
4.1) Jeśli używamy mont-demont-multi2.pl, to dodajemy opcję --citydx, która tworząc odpowiedni indeks dla mapedita, umożliwi grupową zmianą przypisania do miast:
wersja windowsowa wygląda tak:
perl ..\narzedzia\mont-demont-multi2.pl --mont --cities --extratypes --cityidx UMP-Obszar
a linuksowa tak:
perl ../narzedzia/mont-demont-multi2.pl --mont --cities --extratypes --cityidx UMP-Obszar
a jeśli używasz Makefile, to po prostu tak: (jak edytować w linuksie poczytaj sobie tutaj):
make mont
4.2) W przypadku użycia mdm-gui.pl (jak go używać poczytaj tutaj) zarówno w windowsie jak i linuksie źródła należy zmontować z zaznaczoną opcją: Obsługa indeksu miast.
Po zmontowaniu źródeł otwieramy utworzony plik 'wynik.mp' w mapedicie, powiększamy interesujący nas obszar, po czym włączamy tryb podświetlania adresu:
View->Highlight Addresses
oraz wyłączamy podświetlanie klas dróg:
View->Highlight Road Classes
W Mapedit++ jest jeszcze prościej -- na Toolbarze mamy do tego specjalną ikonkę -- czwarta na lewo od ikonki "G": Możemy wybrać pomiędzy "Type driven" (zwykłe wyświetlanie), "Road Classes", a "Addresses".
W tym momencie naszym oczom powinny się ukazać drogi i punkty POI podświetlone różnymi kolorami, przy czym drogi należące do tej samej miejscowości powinny mieć ten sam kolor. Dla punktów kolory mogą być różne, bo w ich przypadku brany jest pod uwagę cały adres (jednakowy kolor powinny mieć punkty z tej samej ulicy). Domyślnie zarówno punkty, jak i drogi, które nie są przypisane do żadnej miejscowości, są koloru czerwonego i bardzo łatwo je wyłapać w gąszczu innych barw. Jeśli czerwony nam nie odpowiada (bo okolice akurat zostały pokolorowane na podobny kolor), to możemy to zmienić w preferencjach ogólnych Mapedita++.
Aby zmienić przypisanie do miejscowości dla kilku obiektów naraz, należy przejść do trybu wyboru obiektów (Tools->Select objects, albo skrót s na klawiaturze), trzymając wciśnięty klawisz ctrl lub shift zaznaczyć więcej niż jeden obiekt naraz, po czym kliknąć prawym klawiszem na jednym z zaznaczonych obiektów i wybrać Modify->Postal address->city. Po kliknięciu na city naszym oczom ukaże się lista wszystkich dostępnych miejscowości. Wybieramy interesujące nas miasto, klikamy OK i gotowe. Drogi i punkty na ekranie powinny zmienić teraz swój kolor, co oznacza, że zostały przypisane do nowego miejsca. Dla punktów POI możemy w ten sam sposób zmienić nie tylko miasto, ale i ulicę.
W przypadku gdy szukanej przez nas miejscowości nie ma jeszcze na liście, trzeba ją do niej dodać. W mapedicie klikamy tools->edit postal address items, a następnie gdy otworzy nam się okno dialogowe klikamy Add, wpisujemy nazwę miejscowości i klikamy OK. Miasto trafi na koniec listy i tam należy go szukać, dopiero po ponownym uruchomieniu mapedita lista zostanie posortowana alfabetycznie. W przypadku pojedynczego obiektu możemy też po prostu dopisać w zakładce Extras wpis "Miasto=JakieśNowe". Przy kolejnym zmontowaniu plików źródłowych wpis ten zostanie uwzględniony i mowe miasto pojawi się na liście dostępnych miast.
Po zakończeniu edycji i zapisaniu zmian należy rozmontować źródła poleceniem :
perl ..\narzedzia\mont-demont-multi2.pl --demont --cities --extratypes --cityidx UMP-Obszar
(Pod uniksem: "make demont" lub "make clean demont", żeby wcześniej pozbyć się ewentualnych śmieci z poprzedniego cyklu pracy)
Uwaga! Przy rozmontowywaniu opcja --cityidx jest niezbędna, inaczej dostaniemy ogromną ilość plików.
Po rozmontowaniu źródeł sprawdzamy czy w plikach diff wszystko jest zgodnie z naszą intencją, nakładamy łatki i wysyłamy zmiany na serwer.
Zmiany dla pojedynczych obiektów
Jeśli w jakimś miejscu trzeba zmienić wpis dla max. 1-2 obiektów, to zamiast wybierać te obiekty i klikać Modify->Postal Address, wygodniej jest zrobić dwuklik na obiekcie (otworzy się okienko Properties obiektu), następnie kliknąć na zakładkę Address, i w końcu na trójkącik rozwijający listę miast po prawej stronie pola City). Lista ta nie będzie zawierała wszystkich miast, a jedynie kilka -- takie jak w obiektach znalezionych w najbliższej okolicy. W 99% przypadków wystarczy wówczas kliknąć na pierwsze miasto z listy, bo to będzie to właściwe. Dwuklikanie na kolejnych obiektach otwiera okno Properties na takiej samej zakładce jak poprzednio, więc cała czynność staje się jeszcze prostsza. Co więcej - mamy także do dyspozycji guzik Last, który ustawia takie samo miasto jak ostatnio.
Zakończenie
Na zakończenie warto wspomnieć o tym, że opcja --cityidx ma w skrypcie mont-demont-multi2.pl priorytet nad wpisem Miasto=. W przypadku gdy zamontujemy źródła z tym parametrem, należy zmieniać przypisania do miast tylko i wyłącznie poprzez mechanizm opisany powyżej. Nowym obiektom można wprawdzie dodawać także wpisy Miasto= i to zadziała, ale w wypadku konfliktu (tzn. gdy wartość wpisu Miasto= jest niezgodna z CityIdx= wybranym "graficznie"), brana jest pod uwagę wartość z Mapedita, a nie z Miasto=. Dzięki temu właśnie możliwe jest hurtowe zmienianie przypisań w mapedicie.
I jeszcze druga rzecz. W systemie Windows zamiast mozolnie montować źródła w konsoli można kliknąć na mont-demont.perl.bat (dostępny w każdym UMP-cośtam), który montuje źródła domyślnie z opcją --cityidx. Po zamknięciu mapedita rozmontowanie następuje również z tą opcją i tak jak w przypadku ręcznej roboty, dostajemy pliki diff. Ja (czyli kto?) tej opcji montowania nie zalecam, bo po pierwsze u mnie nie działa to klikanie, a po drugie konsola jest zamykana natychmiast po odmontowaniu i nie mam możliwości zobaczenia co się zmieniło. Ale jeśli u kogoś to działa i inne rzeczy mu nie przeszkadzają, może sobie klikać do woli. Polecaną za to rzeczą jest korzystanie z graficznej nakładki montującej mdm-gui.pl (w katalogu narzedzia). Opis jak z tego skorzystać tutaj.
No i wreszcie trzecia przydatna informacja. Konsola windowsowa (cmd) obsługuje (kulawo bo kulawo, ale jednak zawsze) historię poleceń. Aby nie wpisywać z każdym razem: perl ..\narzedzia\.... wystarczy nacisnąć strzałkę w górę. Automatycznie pojawi się ostatnie polecenie (jeśli naciśniemy dwukrotnie, to zostanie przywołane przedostatnie itd). Można je wyedytować (np. zmienić --mont na --demont) i dopiero wtedy nacisnąć enter. Strzałka w dół przechodzi do następnego polecenia w historii. W ten sposób można sobie chociaż odrobinę uprzyjemnić pracę z konsolą.
PW
Warto dodać, że mont-demont.bat -idx oferuje podobne możliwości.