JOSM - różne sprawy, porady

Ale przecież Ty pisałeś o zmianach takich:

Także już nie wiem co chcesz pozmieniać.
Tak czy siak, uważam jak Zbigniew, że byłoby to wprowadzaniem w błąd.

Cytuję:

Da się w presecie zrobić tak, żeby z automatu dodawało do relacji?
Przy czym chodzi o relację Veturilo, gdzie każda wypożyczalnia jest członkiem bez roli.

Czytam o member_expression i ni cholery nie kapuję, jak to działa…

Wygląda na to, że wystarczy zadać to pytanie w dowolnym wątku w dowolnym języku, jakim umiem się posłużyć, żeby wątek umarł…

Naprawdę NIKT nie wie, jak to działa?

Chyba zostałem wywołany do tablicy, bo jakiś czas temu poprawiałem to, jak to się parsuje w walidatorze, więc coś wiem jak to działa.

Patrząc po kodzie preset’ów, to wydaje mi się, że wykorzystywane to jest tylko w walidatorze, przy edycji w ogóle.

To jak to działa w walidatorze, to chodzi o to, czy jak mamy element o danej roli, to czy jest odpowiednio otagwany, czyli jak mamy:

<role key="stop" text="stop position" requisite="optional" type="node" member_expression="public_transport=stop_position" />

To jeżeli mamy członka relacji typu “stop position”, to sprawdzamy, czy członek relacji ma tag: “public_transport=stop_position”. Jeżeli to nie będzie spełnione (oraz dla żadna inna definicja roli o tym samym kluczu nie zostanie spełniona), to walidator zgłosi błąd.

Dzięki :smiley:

Czyli w przypadku Veturilo, gdzie stacje są członkami bez roli, to i w walidatorze tego nie użyję. Czyli dalej, albo przypiszemy stacjom jakąś rolę (korzyść dodatkowa - walidator przestanie płakać przy każdej zmianie relacji), albo mogę najwyżej łatać jakimś tekstem w szablonie, przypominającym żeby dodać do relacji…

A jest jakiś edytor do relacji, albo dobra instrukcja, z ktorej się nauczę jak się definiuje możliwe role?

No ale walidator działa z poziomu relacji. Więc on nie wyciągnie Ci błędu “ten obiekt powinien być członkiem relacji, a nie jest”. Bo tego możesz się dowiedzieć najwyżej patrząc na obiekt typu way/node.

Edytora, który pozwala definiować typy relacji nie ma - tak samo jak nie ma edytora definiującego nowy schemat tagowania linii. Rola w relacji jest po prostu dodatkowym “tagiem”, może być dowolnym ciągiem znaków.

A wprowadzanie nowych presetów do JOSM-a jest opisane tutaj:
https://josm.openstreetmap.de/wiki/TaggingPresets

Słusznie, niniejszym zapominam o jakim bądź automacie do relacji i będę jakoś łatać.

Tak, rozumiem. Tyle, że z komunikatu, którym JOSM mi płakał ilekroć modyfikowałem sieć Veturilo wnioskuję, że da się jakoś zdefiniować możliwe role dla relacji i potem sprawdzać, czy elementy mają którąś z tych ról. I chciałbym to jakoś rozpracować, więc szukam jakiejś dobrej instrukcji, albo edytora, w którym byłoby wszystko jasne ;).
Aczkolwiek nie wykluczam, że wyciągam z tego komunikatu zbyt daleko idące wnioski…

A na to już trafiłem, dzięki. Własnie na tej stronie natknąłem się po raz pierwszy na member_expression.

Reguły jakie mamy w tej chwili w walidatorze dla Route Network są następujące:

<item name="Route Network" icon="presets/path.png" type="relation" preset_name_label="true">
            <link href="http://wiki.openstreetmap.org/wiki/Relations/Proposed/Network" />
            <space />
            <key key="type" value="network" />
            <text key="name" text="Name" />
            <optional>
                <text key="network" text="Network" />
                <text key="operator" text="Operator" />
            </optional>
            <roles>
                <role key="" text="member" requisite="required" type="relation" />
            </roles>
        </item> <!-- Route Network -->

No i zapisana tutaj reguła dla ról mówi o tym, że dupuszczalni są tylko członkowie typu relacja, więc węzły są złym typem relacji.

Czytając wiki:
http://wiki.openstreetmap.org/wiki/Key:network

Wydaje mi się, że albo trzeba się zastanowić nad dodaniem jakiejś wartości network=* dla sieci wypożyczalni rowerów i dodać preset dla relacji - “sieć wypożyczalni rowerów”, która wtedy będzie dopuszczać jako członków węzły i obszary (jakby ktoś chciał rysować wypożyczalnię jako obszar?). Albo zmienić tą ogólną regułę walidatora, by nie sprawdzała w ogóle członków.

Wydaje mi się, że obecne podejście, by sieci wypożyczalni tagować jako network=*, jest błędne, bo mieszamy sieci drogowe, z innymi sieciami. Ale tutaj potrzeba zastanowić sie nad ontologią i popatrzeć - co w tej chwili jest w relacjach typu network.

PS.
A konkretnie, gdybyś dodał:

<role key="" text="member" requisite="required" type="node" />

To walidator by nie krzyczał. Możesz też dodać node po przecinku.

JOSM po ostatniej aktualizacji przy próbie załadowania podkładu, np. Geoportalu wypisuje komunikat:

“The layer Geoportal 2: Ortofotomapa (aerial image) does not support the new projection EPSG:3857. Supported projections are: EPSG:2176, EPSG:2177, EPSG:2178, EPSG:2180, EPSG:4326.
JOSM użyje EPSG:4326 do odpytania serwera, jednak rezultaty mogą różnić się w zależności od serwera WMS.
Change the projection again or remove the layer”

Można dać tylko OK, podkład się wczytuje, ale nie na wyższych rozdzielczościach, takich 3-4m na suwaku u góry po lewej (przepraszam za lamerskie określenie zooma, ale nie wiem jak podać to inaczej), natywnie jest to 9-10m na skali. Na pewno przedtem wyższe rozdzielczości się wczytywały.

Czy ktoś potrafi to wyjaśnić?

To moja wina. Generalnie, są serwery WMS, które niepoprawnie serwują kafelki. Akurat serwery Geoportalu radzą sobie w takiej sytuacji dobrze (i chwała im za to), ale jest to ostrzeżenie, które wydaje mi się warto zachować.

Planuję w najbliższym czasie dodać możliwość skonfigurowania, by to ostrzeżenie się nie pojawiało, w przypadku gdy serwer jest oznaczony, że działa w takiej sytuacji poprawnie.

“Nie wczytuje” - oznacza, że zostają kafelki z wyższego poziomu? To co można zrobić na szybko, to podnieść skalę w definicji WMS-a - np. wms[23]:…, z tym że definicja skali dla WMS jest niestety słaba, bo zależy od użytej projekcji.

Pozaznaczałem sobie swego czasu w Garminie przystanki autobusowe w jakiejś tam okolicy (zupełne zadupie, z przystanków korzystają lokalni przewoźnicy prywatni i, zdaje się, jakiś samorządowy). Przystanki nie stanowią jakiejś kompletnej sieci, ale są to wszystkie przystanki w tej okolicy (bo objechałem wszystkie asfalty zamknięte paroma główniejszymi drogami). Nie ma też żadnej listy linii na przystanku, czy rozkładu jazdy, bo i na przystankach ich zwykle nie ma, poza tym zaznaczałem te przystanki na ogół przejeżdżając obok. Tym niemniej te przystanki SĄ wykorzystywane. Jestem w stanie wyeksportować toto do pliku GPX.

Pytania:

  1. Czy jest sens wrzucać taką gołą informację “tu jest przystanek”? IMHO - tak, szczególnie że wiem, że parę razy dziennie coś tam jeździ.

  2. Czy da się taki plik z punktami zaimportować jakoś do JOSM tak, żeby od razu wiedział, że to przystanki i pozwolił przejrzeć jeden po drugim, żeby sprawdzić, czy przystanki nie są już pozaznaczane? Na ogół raczej nie są, w zeszłym tygodniu objechałem część tych dróg, patrząc, czy Garmin coś pokazuje w miejscach, gdzie ja pooznaczałem przystanki i na mapie nic nie ma, widać tylko moje waypointy. Ale strzyżonego Pan Bóg strzyże…

EDIT: W sumie, jak będę sprawdzać po kolei, czy nie są aby już oznaczone, to mogę im przy okazji szablon klepnąć, pozostaje więc tylko pytanie, czy da się taki plik ze zborem waypointów zassać do JOSM i przelecieć waypointy po kolei.

Oczywiście że tak.

Tak to wygląda:

Wcześniej było wyraźne, a teraz jest tragedia.

Możesz podać linka do miejsca, skąd jest to zdjęcie?

A teraz parę pytań:

  1. Czy jak zmienisz odwzorowanie na WGS84 lub PUWG 2180, to linie są ostre?
  2. Czy gdy ustawisz w ustawieniach podkładu, zamiast

ustawisz

to czy uzyskujesz poprzednią dokładność?

Nie sprawdziłem chyba wszystkich kombinacji.
Dopisanie do adresu [23] pomaga przy odwzorowaniu Mercatora i WGS84 - uzyskujemy dwukrotnie lepszą rozdzielczość (sprawdzam to używając “przybliż do natywnej rozdzielczości”), wciąż jest to gorzej niż było, natomiast przy odwzorowaniu PUWG nie ma żadnej zmiany. Sama zmiana odwzorowania też niczego nie zmienia.
Jest lepiej, ale nie do końca. Sprawdzałem tutaj głównie na ortofotomapie Katowic.

Zauważyłem za to, że wreszcie (nie wiem kiedy) pojawił się w JOSM-ie guzik czyszczenia cache - :slight_smile:

Ja prosiłbym o zrobienie wtyczki, która pozwalałaby łatwo wstawiać ronda… Jeśli w jednym miejscu spotyka się kilka relacji (jakieś linie autobusowe albo nikomu nieznane szlaki, pff…), to jest to czasochłonne i łatwo coś zepsuć. Spodziewane działanie jest takie: Rysuję sobie rondo które dzieli węzły z istniejącym skrzyżowaniem. Zaznaczam je. Następnie wtyczka oddziela fragmenty dróg wewnątrz, patrzy jakie relacje route przez nie przechodzą, usuwa je, a następnie dodaje w te miejsca podzielone kawałki ronda z rolami forward/backward.

Ja tam preferuję ronda w jednym kawałku i jak je czasem napotykam przy naprawianiu relacji to łącze w całość.

Co do ról forward/backward to przypominam:
http://forum.openstreetmap.org/viewtopic.php?pid=518914#p518914

Mógłbyś wtedy sprawdzić Rondo “Żołnierzy Wyklętych” w Gniewkowie? Nie mogłem znaleźć żadnego narzędzia do sprawdzania integralności route’ów w stylu OSMonitora.

Ja bym natomiast apelował bardzo mocno, żeby tak nie robić. Relacje potrzebują być w jednym kawałku, segment po segmencie po kolei, i jeśli jakaś trasa autobusowa albo szlak przebiega przez rondo, to należy je pociąć tak, aby do relacji należały tylko te jego fragmenty, przez które faktycznie przebiega. Nawigacje radzą sobie z takim pociachaniem i tak czy siak prawidłowo generują komunikaty typu zjedź 3. zjazdem, a jeśli koniecznie chce się spiąć takie rondo w całość, można użyć do tego relacji z tagiem junction=roundabout.