Edycja
Z UMP
draft!!
Źródła map trzymane są w wielu różnych plikach, aby było nimi łatwiej zarządzać, a także by można pracować na mniejszych fragmentach danych, "odfiltrowując sobie te, które chwilowo nie są potrzebne. Z tego względu zanim rozpoczniesz edycję wybranego fragmentu mapy z jej jednego lub kilku interesujących obszarów, konieczne jest użycie odpowiednich narzędzi, które posklejają odpowiednie pliki źródłowe w całość nadającą się do edycji, a po jej zakończeniu - rozłożą poprawioną mapę z powrotem na poszczególne pliki źródłowe i dostarczą raport o tym, co się zmieniło, aby można było zmienione pliki wysłać do repozytorium CVS.
Podstawowym programem do montowania/demontowania map jest program mont-demont.bat lecz dla "fanów" perla istnieje mont-demont-multi2.pl. Programu tego nie musisz jednak wołać "ręcznie" - w systemie Windows służą do tego odpowiednie skrypty w plikach .bat, natomiast w uniksach - odpowiednie opcje dla programu make zapisane w pliku Makefile.common ("make help" pokaże wszystkie dostępne). Dla wszystkich (unix & windows) dostępny jest także perlowy skrypt mdm-gui.pl będący okienkowym interfejsem do montowania/demontażu źródeł.
Spis treści |
Jak dodać lub usunąć plik?
Dodać: stwórz pusty plik (o nazwie zgodnej z konwencją), wydaj polecenia cvs add nazwapliku; cvs commit. Wrzucaj zawartość, commituj.
Usunąć: skasuj plik z dysku, wydaj polecenia cvs remove nazwapliku; cvs commit. User nie może kasować katalogów.
Perl
Po pierwsze musisz sobie zainstalować perla (Perl w UMP)
mont-demont.perl.bat
Edycja kilku obszarów naraz
- skrypt mdm-gui.pl (dostępny w cvs/narzedzia)
sposób pracy:
- uruchom (wymagany perl)
- ...
ALBO
sposób pracy:
- uruchom (wymagana java)
- sprawdź ew. popraw ustawienia (menu narzędzia)
- zaznacz obszary, które chcesz edytować: menu regiony (jeśli nie ma żadnego, to poplątałeś ścieżki w ustawieniach)
- edytuj: guzik mapedit
- ...
Sprawdzanie co i gdzie autor diffów namotał
czyli jak obejrzeć, co w tych diffach zostało podesłane.
Kroki poniżej automagicznie załatwia paczuj.bat pod system win32, jednak przeglądanie diffów zostaje.
Najpierw diffy po prostu przejrzyj, żeby wyłapać grube błędy albo takie niewidoczne pod Mapedit (np. zdublowanie komentarzy, albo edycja z włączonym Snap to grid).
- Windows
- zmontuj plik Rejon-wynik.mp ("mont-demont /mont" albo po prostu dwuklik w mont-demont i zamknij bez zmieniania)
- dwuklik w cvs_diff.bat
- to zrobi wyciąg w plikach new.plt, old.plt oraz chg.plt, oraz podepnie je pod wynik
- otwórz edycję Rejon-wynik.mp w Mapedit
- szukaj wzrokiem kolorowych wyróżników
- niebieskie - zmienione, czerwone - skasowane, zielone - dodane
- oglądaj i analizuj, pomagając sobie klawiszem E (ukrywa i pokazuje załączniki, w tym wypadku pogrubienia zmienianych miejsc)
- rozmontuj, i jeśli robiłeś poprawki, to zrób to co zwykle.
Sprawdzanie ogólnej kondycji regionu
Służy do tego skrypt "sprawdz_bledy.bat" - dwukliknij i czytaj. A więcej opisów jest tam.
Jak już dostaniesz hasło do cvs
Najpierw skasuj całe repozytorium czyli pliki pobrane przez cvs. Tak, całe. Zaloguj się do cvs i ściągnij od nowa. Przydatne polecenia:
cvs login cvs co all (co=checkout) cvs com (com=commit) cvs logout
- Jak często robić update
Zawsze na początku pracy i tuż przed commitem (no, jeszcze wypada zmontować i rozmontować mapę pomiędzy update i commitem i sprawdzić czy nie zostały jakieś błędy). Przy dłuższej pracy także podczas przerw.
- Jak często robić commit
Po zakończeniu pracy stanowiącej jakąś całość. Najlepiej dzielić pracę na względnie małe kawałki, commit trwa tylko chwilę, a od razu pokazuje innym naszą pracę i zapobiega w ten sposób zderzeniom.
- W pliku pojawiły się jakieś linijki z "<<<<<" "=====" i ">>>>>"
Jednocześnie z kimś edytowałeś te same linijki pliku. Ty zrobiłeś update, cvs ściągnął drugą wersję tej samej linijki, i nie wie która jest lepsza. Między wspomnianymi linijkami widzisz swoją i czyjaś pracę. Sam wybierz która wersja jest lepsza.
- hinty
Sprawdz kto ostatnio dzialal
cvs history -cap UMP-Siedlce
Kto co dłubał w pliku
cvs log plik | more
Co się zmieniło w pliku w ciągu ostatnich dwóch godzin
cvs diff -D "-2 hours" plik
Co sie zmienilo w pliku od ostatniego release, cofnij poprawki zrobione miesiąc temu
cvs diff -r release [-r release-poprzedni] plik > zmiany patch plik zmiany
Jak przywrócić plik do stanu z wczoraj? uwaga: Nie można cofnąć ostatniego (omyłkowego) commita.
cvs update -p -r 1.wersjaOK PLIK.zepsuty.txt > akuku.txt
A oto jak cofnąć ostatni omyłkowy commit (na dobrą sprawę można cofnąć do każdej poprzedniej wersji)
cvs up -j 1.wersjaaktualna -j 1.wersjapoprawna PLIK.zepsuty.txt
Po powyższym poleceniu mamy plik w wersji 1.wersjapoprawna który po commit możemy ponownie przesłać do repozytorium.
Denerwuje mnie ten wyskakujący notatnik
cvs commit -m "Dodalem troche uliczek na Ochocie"
Czym się można podpierać?
Zgłoszenie jest niejasne. Trak chaotyczny. Miejsce skomplikowane. Nie pamiętam jak tam dokładnie wyglądało. Kurcze, jak skołować więcej informacji?
- Mapedit zarejestrowany wyświetla mapy Google
- geoportal
- PKT (bardzo szczegółowe i dość świeże zdjęcia!)
- Zumi i widok satelitarny
- niektóre miasta mają własne systemy z bogatymi lokalnymi informacjami:
- jeśli nie obędzie się bez wizji lokalnej, można poprosić kogoś o pomoc.
Pamiętaj, że zdjęcia satelitarne mają przynajmniej pół roku, często dużo więcej, a my chcemy mieć mapę aktualną. Nie podpieramy się obcymi mapami w kwestii routingu czy nawet przebiegu ulic. Drogowcy są szybsi, niż te produkty.
Inne mapy
Źródeł danych geograficznych jest niedużo, map na ich bazie więcej. Krótkie zestawienie kto z jakich danych korzysta:
- OpenStreetMap z czegokolwiek, poza własnymi trackami także z UMP, państwowych danych we Francji, itd.
- OpenMaps z własnych tracków
- z bazy Imagisu korzystają:
- z bazy Indigo korzystają:
- z bazy Emapy korzystają:
- z bazy Teleatlas korzysta:
- TomTom
- Google (także z PPWK i Trans Navicom)
- z bazy Navteq korzysta
Sprawdzanie
czyli co robić w długie zimowe wieczory ;-)
kompletność spisu ulic w danym mieście
Za wzorzec uznajemy Teryt.
Część miast jest analizowana automatycznie, po każdej kompilacji, a wyniki prezentowane są tutaj. Jeśli chcesz dołączyć swoje miasto, napisz do Alf/red/a.
- nasze dane są pobrane z GUS-u - jawne i udostępniane bezpłatnie wszystkim, wyszukiwarka
- ściągamy odpowiednie miasto z przetworzonego nieco spisu
- guzik Download .csv
- otwórz w Open Office, kodowanie Unicode (UTF-8), rozdzielenie przecinkami
- zamień (Ctrl+F) "ul." na pusty napis
- zamień inne skróty z kolumny A na pełne formy
(nie trzeba: pl. al.?) - pomiń imiona, tytuły i inne niepotrzebne dane z kolumn A i B, a to co istotne (zgodnie z zasadami) przepisz na początek kolumny C (uwaga na niespodzianki, np. "Jana Sobieskiego" i "Stefana Batorego")
- sprawdź!
- zaznacz kolumnę C, skopiuj i wklej do notatnika, który już nagra "samo mięsko"
- posortuj, nagraj (nazwa np. gus-miasto), zamów automatyczne porównywanie.
- robimy spis ulic danego miasta z cvs'a
- usuń tabliczki numerów dróg i posortuj, np. tak (w uniksach):
plik=cvs-miasto grep ^Label MIASTO.ulice.txt | grep -v \{ | tr '\271\234\237\245\214\217' '\261\266\274\241\246\254' | cut -f 2 -d "=" | sort | uniq > $plik grep ^~.0x2 $plik | cut -f 2-9 -d " " > $plik-1; grep -v ^~.0x2 $plik >> $plik-1 sort $plik-1 | uniq > $plik rm $plik-1
- porównujemy
diff gus-miasto cvs-miasto | grep -e [\<\>] | gawk '{sub(/> /,"\t> ");print}' > brak-miasto
- na skróty: w tym katalogu są generowane na bieżąco wyciągi z braków w niektórych miastach.
jednolita pisownia w danym rejonie
Dość skutecznie wyłapuje się różnego sortu litrówki i niekonsekwencje pisowni przeglądając duży spis wszystkich nazw w rejonie. Jest to żmudne (w rejonie UMP-Warszawa jest ok. 5800 różnych nazw ulic), ale łatwiej jest zauważyć rzeczy, których nie przewidzi się ani nie wypatrzy przy zwykłej edycji. Wykonaj sobie coś na kształt:
ump=UMP-{rejon} cd {cośtam}/cvs/$ump cat `find . -name *.ulice.txt` | grep ^Label | \ tr '\271\234\237\245\214\217' '\261\266\274\241\246\254' >> $temp cd - > /dev/null # w sedzie spacja żeby wycinać tylko kiedy jest przed nazwą cut -d = -f 2 $temp | sed -e 's/^~\[0x2.\].* //g' | \ grep -v 0x2.\].* | \ grep -v ^\{ | \ sort -i | uniq | \ tr '\261\266\274\241\246\254' '\271\234\237\245\214\217' > jakis-plik.txt rm $temp
a potem przypomnij sobie zasady, przeglądaj plik, i stopniowo poprawiaj wypatrzone błędy.