Edycja

Z UMP

(Różnice między wersjami)
d (gdzie są generowane braki ulic, drobiazgi z generowania wzorców)
(Perl: perl w ump)
Linia 14: Linia 14:
== Perl ==
== Perl ==
-
co to da, skąd wziąć active, ile to kosztuje
+
Po pierwsze musisz sobie zainstalować perla ([[Perl|Perl w UMP]])
mont-demont.perl.bat
mont-demont.perl.bat

Wersja z dnia 23:35, 29 lis 2009

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)

Grafika:mdm.png

sposób pracy:

  • uruchom (wymagany perl)
  • ...

ALBO

Grafika:Jamond.png

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
  1. zmontuj plik Rejon-wynik.mp ("mont-demont /mont" albo po prostu dwuklik w mont-demont i zamknij bez zmieniania)
  2. dwuklik w cvs_diff.bat
    1. to zrobi wyciąg w plikach new.plt, old.plt oraz chg.plt, oraz podepnie je pod wynik
  3. otwórz edycję Rejon-wynik.mp w Mapedit
  4. szukaj wzrokiem kolorowych wyróżników
    1. niebieskie - zmienione, czerwone - skasowane, zielone - dodane
  5. oglądaj i analizuj, pomagając sobie klawiszem E (ukrywa i pokazuje załączniki, w tym wypadku pogrubienia zmienianych miejsc)
  6. 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.

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.