Jak przypisać do miejscowości kilka obiektów na raz
Z UMP
Spis treści |
Wstęp
Przypisywanie obiektów (czy to ulic czy punktów poi) to miast to dosyć nużące i niewdzięczne zajęcie. Gdy trzeba to zrobić dla kilku, kilkunastu punktów to nie jest jeszcze dramat, ale gdy mamy to zrobić dla kilkudziesięciu, to zaczyna być to męczące. Na szczęście, dzięki dostępnym w ump narzędziom oraz funkcjom mapedita, można tę czynność znacznie uprościć i przyspieszyć. Oto krótki opis jak to zrobić.
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 (użytkownicy linuksa czy innych uniksów mogą pominąć tę część). Aby zainstalować perla na windowsie musimy ściągnąć pakiet instalacyjny. Do wykorzystania mamy dwie tzw. dystrybucje perla: perl truskawkowy ([1]), albo aktywny ([2]). Po pobraniu pakietu instalacyjnego i zainstalowaniu na windowsie, można zabrać się za grupową zmianę przypisań do miast.
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. 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 proszę 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 z opcją --citydx, która tworząc odpowiedni indeks dla mapedita, umożliwy grupową zmianą przypisania do miast:
perl ..\narzedzia\mont-demont-multi2.pl --mont --cities --extratypes --cityidx UMP-Obszar
Pod uniksem piszemy po prostu "make mont", co montuje źródła ze wszystkimi wspomnianymi opcjami. Po zamontowaniu ź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ę -- 4 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.
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 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ącą nas mieścinę, 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.
Po zakończeniu edycji i zapisaniu zmian należy odmontować źródła poleceniem :
perl ..\narzedzia\mont-demont-multi2.pl --demont --cities --extratypes --cityidx UMP-Obszar
(Pod uniksem: "make demont")
Uwaga! Przy odmontowaniu opcja --cityidx jest niezbędna, inaczej dostaniemy ogromną ilość plików.
Po odmontowaniu ź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 klikamy na zakładkę Address, i w końcu na trójkącik rozwijający listę miast po prawej stronie od pola City), a ta lista nie będzie zawierała wszystkich miast, a jedynie kilka -- takie jak w obiektach znalezionych w najbliższej okolicy. Więc w 99% przypadków wystarczy wówczas kliknąć na pierwsze miasto z listy, bo to będzie to właściwe.
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=.
I jeszcze druga rzecz. 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 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.
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 wcisnąć strzałkę w górę. Automatycznie pojawi się ostatnie polecenie (jeśli wciśniemy dwukrotnie to zostanie przywołane przedostatnie itd). Można go wyedytować (np. zmienić --mont na --demont) i dopiero wtedy wcisnąć 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