area:highway

Nie jestem pewien ale jeśli area:highway będzie miało inny tag niż linia highway z która musi się przeciąć - wywalało będzie informację że jest błąd w tagowaniu tego area.

Oraz czy mógłby ktoś wyjaśnić, jaką korzyść mielibyśmy, mając różne wartości highway i area:highway dla tej samej drogi?

Dobrze byłoby gdyby ktoś obyty z a:h=* przejrzał cały zestaw i wskazał co ewentualnie można by poprawić:

Wątpliwości mam w 4 kwestiach:

  • Czy strony nie są aż za bardzo przeładowane obostrzeniami, tak, że odniesie to skutek odwrotny do pożądanego (dla przeciętnej osoby będzie to “tl:dr”?)
  • Duplikowanie tagów z linii do obrysów (np. poprawnie otagowana nierozdzielona ścieżka dla pieszych i rowerów to co najmniej 4 tagi - czy wszystkie one powinny pojawić się też w obrysie? We wstępnej wersji artukułu jako poprawne dałem sam tag a:h=path)
  • Rozróżnienie pomiędzy nierozdzieloną ścieżką dla pieszych i rowerów, a chodnikiem z dopuszczonym ruchem rowerowym (dla pierwszego przypadku przewiduję tag a:h=path, dla drugiego kombinację a:h=footway + bicycle=yes)
  • Poprawność językowa

Konsument danych chciałby mieć te tagi dostępne od razu i za darmo - czyli na obrysie.
Mapujący nie chcialiby tak duplikować danych i potem pilnować, czy się nie zdeaktualizowały.

Nie ma tu dobrego rozwiązania.

Jak dla mnie, logiczne jest:

  • highway=footway + bicycle=yes - chodnik z dopuszczonym ruchem rowerów (znak C-16 z tabliczką T-20)

  • highway=footway + bicycle=designated - droga dla rowerów i pieszych (znak C-13/C-16) z poziomym podziałem)

@rmikke

ok

liniowo dla takiego przypadku przewidziana jest kombinacja highway=path z 3 innymi tagami (zobacz: https://wiki.openstreetmap.org/wiki/Tag:highway=path#Usage_as_a_universal_tag)), więc dla obrysu również powinien być to tag area:highway=path. I tutaj znowu powracamy do kwestii czy duplikować z linii do obrysu te pozostałe 3 tagi.

Odpowiedzią na to pytanie będzie ustalenie, czy docelowo te obrysy a:h=* mają mieć wyłącznie funkcję wizualną, czy też routing (np. sygnalizowanie korzystającemu z gps rowerzyście, że jedzie po chodniku, kiedy tuż obok ma ścieżkę rowerową). Bo:

  • jeżeli uznajemy że ma to tylko ładnie wyglądać, to wystarczy do tego jeden tag (a:h=footway/cycleway/path/pedestrian)
  • jeżeli ma to służyć również do routingu po obszarze, to program musi skądś wiedzieć jakie panują na nim zasady, a więc potrzeba zduplikowania tagów z linii

Co o tym sądzicie?

Z tego co wiem i do tej pory stosowałem to:

area:highway=highway - bez zbędnych atrybutów. Ważne by linia area:highway przecinała się z każda linią highway. Kiedy przecinała się tylko z linią highway w dwu punktach (musi) zostawiamy tylko tag area:highway=highway, jeśli natomiast przecinała się z inną linia highway (drugą i więcej) otrzymywała tylko dodatkowo tag junction=yes/y_junction/roundabout - dla ronda i mini ronda.
Dla przejść dla pieszych - w ich miejscu nie stosowałem oddzielnego pola area:highway=highway - pasy rysuje dodanie do lini highway=footway tagu footway=crossing, wydzielałem tylko przejazdy dla rowerów gdzie do pola area:highway=highway dodawałem tagi bicycle=yes + dla linii highway=cycleway dodawałem cycleway=cossing. Pierwsze dodaje do area:highway kolor lekko czerwony “asfaltu” drugi (crossing) oznakowanie poziome przejazdu rowerowego lub pasów zebry przy footway.

nierozdzielona droga dla rowerów i pieszych oznaczona znakiem z poziomą kreską - area:highway=path + bicycle=yes. Na skrzyzowaniach z zaznaczonymi podjazdami do posesji (highway=service) gdzie obie linie się przecinają area:highway=service + bicycle=yes + junction=yes. Dla dróg rozdzielonych oznaczonych znakiem z linią pionową to samo co powyżej. Informacja o rozdzieleniu i inne pozostają w linii highway a nie w area:highway.

tego nie praktykowałem i nie wiem jak to się będzie renderowało i nigdzie czegoś takiego nie widziałem dla area:highway=footway

Tak właściwie, to gdyby mnie ktokolwiek pytał, to doradziłbym używanie wyłącznie
area:highway=
gdzie byłoby identyfikatorem krechy, którą dany kawałek a:h przykrywa (highway) i renderer brałby sobie tagi ze wskazanej krechy. A do a:h oprócz wyżej wspomnianego dawałoby się tylko tagi, wskazujące, jak to renderować (kolor? kierunek kostki? co tam jeszcze było?). Normalizujmy dane w bazie, do jasnej…

Można jeszcze prościej: area:highway=yes i renderer brałby sobie tagi z krech objętych tym obszarem.

Ale tak chyba jest:

  • area:highway= najwyższej krechy pod nim. Dodatkowo dawało się junction=właściwy tag dla skrzyżowań/przecięć dróg: highway;footway;cycleway czy to na jezdni czy to na chodniku czy drodze rowerowej. Surface area:highway bierze sobie z danych zapisanych w głównej linii highway tego pola, bicycle=yes dodawało tylko czerwonawy kolor nawierzchni w takim polu area:highway i nie dodajemy go do area:highway=cycleway bo tu kolor czerwony jest przypisany do tego tagu jak i kostka brukowa czerwona renderingu w zależności od surface przypisaneg do linii highway -z niej właśnie area pobiera dane. Dodawanie piktogramów roweru, przejazdu rowerowego i przejścia dla pieszych - pobiera także z linii highway im odpowiadających.

  • area:highway=emergency - dodajemy tylko jeszcze kąt pod jakim maja być wyrysowane linie martwego pola.

W sumie tak jest. Dane do renderingu brane są z tych głównych linii highway. Ważne dlatego jest by area:highway= = highway= !

To jest prościej tylko do momentu, kiedy krechy pod spodem mają wszystkie ten sam zestaw tagów. Czyli BARDZO krótko.

Gdyby tak było, to nie byłoby problemów:

  • “czy wartość a:h musi odpowiadać wartości highway” - nie, zawierałoby osmID tego highway

  • “czy trzeba powtarzać tagi z highway” - nie, wartości tych tagów wyciągałoby się z highway

Natomiast zaczynam mieć wątpliwości co do tego powiązania a:h z krechą. Jaka krecha byłaby pod tym, co obecnie jest tagowane jako a:h=emergency właśnie?

Co do pierwszego primo: - area:highway odnosi sie do najważniejszej krechy pod nim. Czyli jeśli jest tam highway=secondary którą przecina czy to highway=footway czy cycleway czy service z przypisanymi sobie tam jakimiś tagami odnośnie surface to i tak skoro area:highway pobiera resztę tagów do renderingu z tej samej linii highway=secondary - najwyższej kategorii. Jeśli secondary będzie miało surface=asphalt a załóżmy przecinający ją footway kostkę brukową to i tak area przyjmnie do renderowania surface najwyższej opisującej je highway.

Co do drugiego primo - area:highway=emergency nie przyjmuje żadnych tagów z żadnej linii pod spodem. można je wyrysować w drodze: osobno lub jako multipolygon - relację (chyba dobrze napisałem) albo wyrysować oddzielnie na area:highway jako mniejszy element który osmapa wyświetli na wyższym poziomie - nad area:highway=secondary (na ten przykład).

Czy temat "area=yes vs area:highway=" był kiedykolwiek poruszany na liście Tagging? Jeśli tak to poproszę linki z dyskusją/ dyskusjami. Chciałbym dodać na Github bilecik z propozycją renderowania chodników/ dróg rowerowych w a:h=, ale wcześniej warto wszystko wyjaśnić na etapie samego tagowania.

A gdzie chciałbyś mieć to renderowanie, bo na githubie jest trochę tych renderów? Ostatnio widziałem support dla tego na Osmandzie, nie wiem jednak, czy skończony.

osm-carto, renderowanie area:highway=footway/cycleway/path/pedestrian w ten sam sposób jak teraz renderowane jest highway=footway + area=yes

Zapytałem o zdanie innych na liście tagging: https://lists.openstreetmap.org/pipermail/talk/2018-August/081102.html
Generalnie większość nie widzi żadnego problemu ze stosowaniem kombinacji z area=yes. Są jakieś próby rozgraniczenia tych obszarów na pochodzące od linii (chodników) lub placów. Prawdę mówiąc już się w tym wszystkim powoli gubię, no ale w każdym razie zachęcam do zabrania głosu :slight_smile:

Pytanie do maniaków a:h=* :slight_smile:
Czy w takich miejscach jak to (przecięcie pojedynczej drogi z torami) powinno robić się osobny obrys z tagiem junction=yes? Pytanie o to, czy "junction=* obejmuje tylko przecięcia dróg utwardzonych. czy również skrzyżowania dróg utwardzonych z drogami kolejowymi (torami)?

https://www.openstreetmap.org/way/636548879

To zależy od wytrzymałości mapującego - jak bardzo jest zdeterminowany, by rysować dużą ilość małych obszarów a:h, a potem przez lata je aktualizować.

Pod podanym linkiem są tory tramwajowe.
To ułatwia odpowiedź - czy w przypadku, gdy masz torowisko tramwajowe w jezdni, to obszar a:h dla niej też oznaczysz przez junction=yes?


Czy naprawdę te obrysy chodników muszą mieć tagi highway=footway + area=yes? Czy samo area:highway=footway nie wystarczy? Dla ulic widzę sens - pojazdy autonomiczne w przyszłości ale chodniki - po co to komu!?

Nie, nie muszą, bo w końcu od tego jest area:highway, jeśli dana droga ma znaną oś po której można poruszać się / nawigować.
Dla mnie to jest tagowanie pod render. https://wiki.openstreetmap.org/wiki/Tagging_for_the_renderer
Jak to już kiedyś Zbigniewowi mówiłem, a on przekuł w swoją sygnaturę na forum: złe dane rodzą więcej złych danych. Przez zwyczajne naśladownictwo.