Tracer2: Ekstrahowanie rzutów budynków w JOSM

Jest jednak różnica pomiędzy naszymi tracertami. Swój zainstalowałem z wine i uruchomiłem z mono, a ty widzę swój uruchamiasz skompilowany ze źródeł. W jaki sposób można tego dokonać pod Linuksem? Nigdy nic nie kompilowałem z mono a nie widzę tam żadnego autoconf czy automake :wink:

**Edit:**Widzę instrukcje na https://wiki.openstreetmap.org/wiki/JOSM/Plugins/Tracer2#Compiling_Tracer2Server Zobaczymy co z tego wyjdzie…

Edit 2: Skompilowane, uruchomione i dalej nic i w dodatku przy starcie dodało następującą linijkę “Could not set X locale modifiers” oprócz tych dwóch standardowych

Edit 3: Próba kompilacji JOSM pod Linuksem również spęzła na niczym przy dziwnym błędzie podczas pobierania kodu gdzie wywala próbę poprania aplikacji poprzez prak praw odczytu do pliku jpg na serwerze…

[...]
A    images_nodist/presets/windmill.png
svn: E175013: Access to '/svn/!svn/rvr/7765/trunk/images_nodist/logo/bannerwiki.jpg' forbidden

JOSM-a nie kompiluję, uruchamiam przez WebStart ze strony projektu, czyli zasadniczo jakbym uruchamiał poleceniem:

java - jar josm-tested.jar

więc nie ma potrzeby kompilowania. Tracer2Server skompilowałem zgodnie z tymi instrukcjami na Wiki. Trudno mi powiedzieć co u ciebie jest nie tak. Używam najnowszej wersji Ubuntu (15.10 64-bit).

Czy używanie tej wtyczki jest traktowane jako import, i trzeba postępować zgodnie z https://wiki.openstreetmap.org/wiki/Import/Guidelines ?

Z importami jest tak, że nie chodzi o konkretne narzędzie, lecz o sposób jego używania. Jeśli cała praca, którą wykonujesz, mogła by być wykonana przez automat (tylko być może nie potrafisz go stworzyć), to ma to wszelkie znamiona importu. Z tracerem akurat sprawa jest prosta, bo do niego używa się podkładu BDOT, który ma liczne, łatwo rozpoznawalne wady (budynki poszatkowane dość bez sensu na części, stopnie schodów itp. jako osobne obrysy, wyciągnięte obrysy nie trzymające prostopadłości, budynki przecinające istniejące w OSM obiekty itd. itp.). Jeśli jednak każdy obrys wyciągnięty tracerem porównujesz z innymi źródłami (np. podkładem zdjęć satelitarnych geoportalu), dbasz o zachowanie odpowiednich kątów oraz tagów i dokonujesz rzetelnie ręcznej weryfikacji wprowadzanych danych to tracer jest tylko narzędziem takim samym jak buidling_tools pomagające rysować kąty proste lub “a” w JOSM przyciągające do “równych” kątów i jest to normalna edycja.
Porównaj również krótką dyskusję na ten temat tutaj: http://forum.openstreetmap.org/viewtopic.php?id=53741

Używał ktoś wtyczki Areaselector? Wygląda na to, że ma podobne zastosowanie co Tracer2, a nie wymaga uruchamiania osobnego kodu:

https://github.com/JOSM/JOSM-areaselector/wiki

Wtyczka jest przydatna. Obsługuje WMSy, które nie działały pod tracerem. Trochę trzeba dopracować konfigurację, ale na razie nie mam na to czasu.

Dawno się nie interesowałem losami tej wtyczki, ale ponieważ ostatnio zepsuł mi się plik konfiguracji JOSM-a, to z ciekawości spróbowałem ustawić wszystko od zera i wygląda na to, że w konfiguracji do Tracer2 wreszcie nie trzeba nic wpisywać, bo mamy do wyboru dwa gotowce z Polski:

  • WMS mapy.geoportal.gov.pl - budynki
  • WMS wrotamazowsza.pl - budynki

Ja sprawdziłem tylko Geoportal i akurat działa. :slight_smile: Cieszę się, bo to obniża próg wiedzy koniecznej do uruchomienia tego przydatnego narzędzia. Przydałyby się jeszcze odpowiednie podkłady w JOSM-ie z automatu, żeby można było zobaczyć co się mniej więcej wyrysuje. Największy problem to kompilacja Tracer2Server, ale dobrze chociaż że pod Windows nie trzeba.

Czy można zrobić tak żeby skopiować kod z jednej wtyczki do drugiej i wysłać to jako poprawkę? Bo w tej chwili zmusiłem już tracer2 do tego żeby używał starych węzłów ale sporo skopiowałem z funkcji Zastąp geometrię :smiley:

To zależy na jakiej licencji jest kod jednej i drugiej wtyczki… Jeśli na tej samej, to nie powinno być problemu.

A możesz bardziej konkretnie - jaką licencję ma ta funkcja i gdzie leży jej kod (i to samo z wtyczką “docelową”)? Tam powinny być namiary na autora. Jeśli się nie odezwie albo nie zaakceptuje zmian, to zawsze możesz zrobić fork i go zgłosić do JOSM-a oraz opisać na wiki.

Obie są na licencji GPL więc chyba nie ma się co zastanawiać tylko zgłosić poprawkę. Wszystkie wtyczki są trzymane tu i w razie konieczności są aktualizowane wg potrzeb do zmian zachodzących w Josm

To jest tylko kopia w Gicie, oryginalny kod (i kontakt do autora) jest tu:

https://svn.openstreetmap.org/applications/editors/josm/plugins/tracer2/README

Zmiany zgłosiłem tu jako poprawkę: https://josm.openstreetmap.de/ticket/11402

Testować jak to działa można przy pomocy tego pliku, trzeba go wkleić do folderu z wtyczkami.

Pomyśl jeszcze aby Tracer2 nie kasował wejść i adresów a także POI. jeśli są na nodzie na obrysie. Nie może takowych też przesuwać a tylko odklejać.

Jeśli chodzi węzły z tagami to są nie zmienione, np wejście zostaje w tym samym miejscu w którym było na starym obrysie i trzeba to ewentualnie przesunąć.

Fajnie. Jutro protestuję. Natomiast ciekawi mnie jak obiekt nowo wyrysowany ma inną ilość punktów niż oryginał to jak wówczas zachowuje się plugin? Gdy punktów ma być więcej jak decyduje w jakiej kolejności dodać punkty istniejące a gdzie dodać nowe? Analogicznie gdy ma być ich mniej to który punkt usuwa z historii a które pozostają? MA jakieś LIFO, FIFO czy inną heurystykę decyzyjną w tym względzie czy to raczej kwestia przypadku?

Tu jest opis jak to wygląda od strony kodu:
Linia
138: początek funkcji odpowiedzialnej za łączenie/dodawanie drogi nowej
166: tempWay - nasza stara droga
170: nodePool - węzły które możemy wykorzystać
174: geometryPool - tymczasowe węzły z geometrią nowej drogi w odpowiedniej kolejności
181: stara droga traci wszystkie węzły ale dalej jest starą drogą
186: nodeAssoc - tablica w której mamy pary węzłów z geometryPool i najbliższe im odpowiadające z nodePool (jeśli takie istnieją - linia 190), oryginalnie w “zastąp geometrię” były tu dwie funkcje ala ta druga była mniej wydajna i korzystała z dodatkowych bibliotek
198: geometryNodes - geometria ze starymi węzłami, jeśli węzłów jest więcej niż wcześniej to są brane z geometryPool
204: przesuwamy stare węzły na nowe pozycje (w sumie to tylko dodajemy komendę która z tego co zauważyłem wykonuje się później)
209: tempWay - nasza stara droga ma węzły z geometryNodes
212: Jeśli stara droga miała więcej węzłów niż nowa oznaczamy węzły jako skasowane
219: s_oWay to nasza poprawiona stara droga
222: łaczymy węzły razem jeśli są w niewielkiej odległości
226: domknięcie drogi jeśli nie jest domknięta - ostatni i pierwszy węzeł musi być taki sam
252: łączy drogę z pobliskimi węzłami - dlatego jeśli np wejście jest wzglednie blisko nowej geometri zostanie do niej doklejone bez przesuwania
255: węzły które wcześniej onzaczyliśmy jako skaskowane oznaczamy jako nie skasowane i je usuwamy - z tym było najwięcej problemów

dalej już nic nie zmieniałem i zostało po staremu

W takim przypadku na tym etapie nodePool ma jeszcze węzły które już nie są potrzebne i są one kasowane.

Dla każdego punktu nowej drogi sprawdzamy czy istnieje w nodePool taki punkt który leży w odległości euklidesowej mniejszej niż 1 jeśli jest ich więcej wybieramy najbliższy. Odpowiada za to funkcja findNearestNode.

Jest problem z bardzo ciemnym kolorem brązowym.
Przy opcji wyszukiwania za pomocą koloru wypełniającego, właśnie ten kolor nie jest rozpoznawalny i Tracer2 go nie widzi, przeskakując na inny obrys.

Mam pytanie odnośnie adresów url do Tracer2

Jako podkładu do rysowania budynków w JOSM używam WMS polska.e-mapa.net (dostępny z menu JOSM-a)

http://wms.epodgik.pl/cgi-bin/KrajowaIntegracjaEwidencjiGruntow?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=budynki&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}

Jako url do Tracer2 (znaleziony na forum OSM) używam

[http://mapy.geoportal.gov.pl/wss/service/pub/guest/kompozycjaG2_TBD_WMS/MapServer/WMSServer?FORMAT=image/gif&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Bud_A&STYLES=&TRANSPARENT=TRUE&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}{header(User-Agent,Mozilla/5.0](http://mapy.geoportal.gov.pl/wss/service/pub/guest/kompozycjaG2_TBD_WMS/MapServer/WMSServer?FORMAT=image/gif&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Bud_A&STYLES=&TRANSPARENT=TRUE&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}{header(User-Agent,Mozilla/5.0) (JOSM)}

Drugi WMS, którego używam do Tracer2 jest nieaktualny, nie zawiera wszystkich budynków. Pierwszy WMS jest aktualny i zawiera nawet niektóre budynki, które są dopiero w budowie.
Pytanie: Jak zrobić, żeby używać pierwszego WMS-a (wms.epodgik.pl) w Tracer2, próbowałem i dałem sobie rady.

Hej!
Dajesz Podkłady=> Ustawienia podkładów=> i kopiujesz sobie adres z „url warstwy obrazów”.

Następnie przechodzisz do ustawień tracer2 i wklejasz adres do pola URL (albo przy użyciu Dodaj nowy albo Edycja).
Wtedy tracer powinien importować obrysy z podkładu który aktualnie wyświetlasz.

Problem jednak jaki napotkałem z podkładem polska.e-mapa.net: Buildings jest taki że nie jestem go w stanie zmusić do współpracy z Tracerem.
Próbowałem różnych ustawień parametrów, ale nie i już :frowning:
Zaimportowałem sobie zatem adres z Krajowej Integracji Ewidencji Gruntow z polska.e-mapa.net czyli http://wms.epodgik.pl/cgi-bin/KrajowaIntegracjaEwidencjiGruntow i było już lepiej, tj. chodził względnie na ustawieniach jak poniżej:

choć nie rysował tak dobrze jak na podkładzie z lokalnego powiatu (testowałem na powiecie poznańskim). Podobnie zresztą jak podkład polska.e-mapa.net: Buildings miał on tendencję do „zygzakowania” linii (co przekłada się na kształt importowanych budynków), które np. na podkładzie z powiatu poznańskiego wyświetlają się prosto.
Poza tym nie wiedzieć czemu część budynków rysuje mi dokładnie obok a część poprawnie.
Na koniec próbowałem zaimportować jeszcze adres z „Twojego” powiatu pilskiego http://wms.powiat.pila.pl/cgi-bin/pila ale tutaj niestety nawet podkład nie chciał się wyświetlić (nie udało się pobrać obrazu z serwera kafelków) nie mówiąc już o współpracy z tracer2 :frowning:
Zatem wygląda na to że rysujesz albo dalej „ręcznie” albo tracer-ujesz budynki które potem przesuwasz do podkładu. Nie wiem tylko co wychodzi szybciej :confused:
Może za jakiś czas podkład z pow. pilskiego zacznie chodzić więc wtedy można spróbować raz jeszcze…