Prośba o niesklejanie danych różnego typu

Mam taką malutką prośbę do szanownych mapowiczów.

Otóż od kiedy objawił się Bing i zaczęto rysować coś innego niż drogi, a np. różnego rodzaju obszary landuse=*, obserwuję tendencję do przyklejania tychże obszarów do dróg. Nie jest to może jakiś straszny błąd, ale wg mnie jest to jednak błąd.

Dlaczego?

Przykładowo jest sobie cmentarz w mieście, ogrodzony. Ktoś go przykleił do biegnącej obok niego ulicy. Ale zaraz! Przecież tam jest jeszcze chodnik! Między cmentarzem, a ulicą jest chodnik, który też można by wyrysować. Nie musimy go rysować, ale nie utrudniajmy pracy komuś innemu, kto będzie ten chodnik chciał wyrysować - będzie on musiał wtedy odklejać cmentarz od jezdni, żeby narysować go.

Takich przykładów mogę mnożyć bez liku - pola poprzyklejane do dróg, lasy, obszary zamieszkałe… C’mon! Jeśli mamy dobre zdjęcia, to je wykorzystajmy i narysujmy to dokładnie.

Ktoś powie, “ale mi się ta droga sama przykleiła”… Rozwiązania są dwa:

  • przybliżenie sobie odpowiednio blisko obszaru, tak by droga nie przyklejała się do sąsiedniej w czasie rysowania
  • rewelacyjne rozwiązanie w JOSM pt. filtry, które można tak skonfigurować, by JOSM ukrywał dane określonego typu. Na przykład ja, rysując drogi mam wyłączone wyświetlanie landuse=* dzięki czemu, primo: nic mi się nie przykleja, duo: nic mi nie przysłania podkładu. Gdy z kolei rysuję landusy to wyłączam sobie drogi. Polecam: http://josm.openstreetmap.de/wiki/Help/Dialog/Filter

IMO, warto trzymać się ogólnej zasady, by nie łączyć ze sobą danych różnego typu, czyli np.:

  • landuse=* z highway=*
  • landuse=* z boundary=*
  • boundary=* z highway=*
  • itp, itd.

Popieram.

Dodam tylko, że w czasie rysowania w JOSM można trzymać wciśnięty klawisz Ctrl. Również unikniemy przyklejania.

Popieram,
poprawianie tego to straszna meczarnia i strata czasu.

Może by jakiś wątek przykleić w stylu “zasady mapowania - jak to robić dobrze” :stuck_out_tongue:

hmm, a jak granice miasta stanowi oś drogi?
Ja w takim wypadku przykleiłem boundary do highway.

W tym konkretnym przypadku, jeśli masz 100% pewności, że granica pokrywa się z osią jezdni, można przyklejać. Wydaje mi się, że to jednak rzadkość - często granica biegnie tuż obok drogi.

‘landuse’ miewa dwa różne znaczenie:

  1. Jakieś konkretne wykorzystanie terenu – np. wspomniany cmentarz. Takich rzeczy nie należy przylepiać do dróg itp., bo obszary mają konkretne granice gdzie indziej (ale w przypadku cmentarza granica ta pewnie będzie się pokrywać z ogrodzeniem – też jest do czego przylepić).

  2. Oznaczenie ogólnego przeznaczenia terenu. np. landuse=residental. W tym przeznaczeniu IMHO mieści się i ten chodnik, pół ulicy, czy brzeg rzeki. Więc IMHO spokojnie można przylepiać to do ulic, granic miast, naturalnych granic (rzeki). Wykorzystanie relacji multipoligon składającej się z takich obiektów jako granic obszaru bardzo ułatwi zapanowanie nad całością. U nas w Gliwicach „starówka” jest ograniczona ulicami Górnych Wałów i Dolnych Wałów – IMHO rozsądne jest wykorzystanie tego jako granicy odpowiedniego landuse=residential. Podobnie będzie z osiedlem mieszczącym się między kilkoma ulicami, czy granicami miast na jakiejś ulicy, płocie, czy rzece.

Ale po co przyklejać? Są z tego jakieś korzyści? Przecież obszary, które są np. jakimś osiedlem można wyrysować bez przyklejania do dróg.
(przypomnę, że mówię o rysowaniu landuse na podkładzie binga, tam gdzie widać granicę ulicy)

Scisle biorac landuse residential uzwane jest w calej Europie (nie wiem jak w USA) do obszarów dzialek mieszkalnych które w zdecydowanej wiekszosci przypadków koncza sie tam, gdzie zaczyna sie chodnik. W przypadku starówek miast landuse konczy sie zazwyczaj na froncie budynku. Ciekawym przypadkiem i ladnie narysowanym jest w Polsce Starówka w Gnieznie.

W przypadku programów GIS obslugujacych koncepcje tzw Level Of Detail (LOD) rysuje sie Landuse Residential dla calych obszarów zaiwrajacych w sobie ulice. Koncepcja LOD oznacza jednak, ze rysujemy rózne Landuse= residential dla róznych stopni zoomu mapy. Stopni takich jest zazwyczaj 2,3 lub 4. W przypadku OSM jedynym elementem który dziala w sposób quasi LOD jest rzeka, rysowana jako os i jako obszar. W zaleznosci od stopnia powiekszenia mapy widzimy jedno lub drugie.

Niestety LOD w OSM jeszcze nie mamy ( byc moze weojdzie wraz z API 7 nad którym dyskutujemy). Zanim to sie pojawi, lepiej jest rysowac pod jak najwiekszy stopien szczególowosci mapy, czyli nie przyklejajac obszarów do osi ulicy, bo jest wysoce prawdopodobne ze pojawi sie tez obsluga area:street i wtedy bedziemy to poprawiac.

Ad. 2. Trochę dyskutowaliśmy na ten temat na IRC. Doszliśmy do kilku wspólnych wniosków.

  • To co zostało wcześniej napisane nie zmienia faktu, że (w razie potrzeby) odklejanie jest uciążliwe.
  • W przypadku w miarę dokładnych danych (o tym jest mowa w tym wątku) można się zastanawiać - dlaczego nie narysować chodnika/drogi/trawy jako obszarów i wtedy doklejać.
  • Zostaje jeszcze kwestia - co rozumiemy przez tag landuse=reasidential.

proponuje Landuse= residental stosowac tak, jak uzywaja tego europejskie urzedy geodezji:
residential to obszary z zabudowa mieszkaniowa lub przewaznie mieszkaniowa ( sklepiki spozywcze lub drobne rzemioslo na parterze np, to takze residential)

Nie jestem pewien, czy rozne poziomy szczegolowosci powinny byc rozumiane przez API. (literowka: 0.7 nie 7) Jesli mialyby byc wprowadzane dane z rozna szczegolowoscia, to pewnie w sposob transparentny dla API, taki ktory mozna zrealizowac i teraz.

Ale wydaje mi sie, ze ten pomysl spotkalby sie z duzym oporem bo zalozenie jest zwykle takie, ze dane o nizszej szczegolowosci mozna wygenerowac automatycznie z danych o wyzszej szczegolowosci. Trzymanie danych o roznych poziomach szczegolowosci jednoczesnie w bazie utrudniloby edycje i potencjalnie doprowadzilo do niespojnosci kiedy zachodza jakies zmiany. Ja proponuje tak jak dotychczas mapowac na najwyzszym poziomie szczegolow na jaki mamy akutalnie czas i checi (i na jaki pozwalaja nam narzedzia, z ktorych korzystamy)

Generalnie w przypadku map dwuwymiarowych rzeczywiscie tak jest, jakkolwiek nie znam sprawnie dzialajacego algorytmu który z powierzchni zalewu bezproblemowo generuje os rzeki.
W przypadku danych 3D robi sie juz zdecydowanie trudniej bo automatyzmy po prostu zawodza. Jest co prawda pomysl by waznym punktom dodawac indeks w postaci ich waznosci ale nikt jeszcze tego w praktyce nie wypróbowal o ile wiem.

Edycja bedzie bardziej skomplikowana ale mozliwa zas niestety co do niespójnosci to prawda: to potencjalnie duze zródlo bledów i stawia przed uzytkownikami jeszcze wieksze wymagania podnoszac barierke na wejscie.

To akurat uważam, za dość proste… Oznaczenie 2 węzłów IN/OUT (za pomocą np. wysokości) + szkieletyzacja. Mamy wtedy dodatkowo oprócz osi wszystkie możliwe miejsca przepływu.

W mojej okolicy niedawno zostało naniesione dużo obiektów landuse=* (chwała autorowi). Jednak jak przyjrzałem się im z bliska w JOSM zobaczyłem, że w te obszary (np. osiedla, zabudowania) wrzynają się zmapowane drogi, wzdłuż których pozostaje pas nieoznaczonego terenu . Zastanawiając się jak to poprawić znalazłem ten wątek.
przykład osiedla: http://www.openstreetmap.org/?lat=50.187167&lon=18.852413&zoom=18&layers=M
Problemy widzę dwa:

  1. istnieją rozbieżności między położeniem drogi a pozostawionym w ramach obszaru pasem na drogę, co wymaga korekty
  2. takie wielokąty z “wyciętymi” pasami drogi zwilelokrotniają ilość danych (jeden zestaw punktów dla drogi i po jednym z każdej strony drogi jako granica obszaru = trzy razy więcej punktów), IMHO bez potrzeby . Obsługa większej ilości danych wymaga więcej czasu, zarówno do edycji jak i przy renderingu/kalkulacjach, nie wnosząc żadnych użytecznych informacji (np po renderingu i tak droga przykrywa granice swoich “wcięć” na obszarze).

Wydaje mi się, że lepiej byłoby cały taki obszar osiedla zamknąć jako jeden obszar landuse=residential, pozostawiając NA NIM drogi jak dotychczas. Podobnie z pasami ciągłych zabudowań wzdłuż innych dróg, często poprzecinanymi dróżkami dojazdowymi do posesji nnA,B,C. Czy są jakieś powody, żeby tego nie robić?

Twoja okolica to jest akurat dosyc szczegolny przypadek, bo te obszary landuse pochodza z danych Urban Atlas opublikowanych przez europejska agencje ochrony srodowiska, czy jak ona sie tam nazywa (EEA). EEA miala taki smieszny pomysl, zeby wziac skads (nie udokumentowali tego skad konkretnie) siatke drog i kolei, i wygenerowac wokol tych wektorow obszary o stalej szerokosci, oznaczone jako oddzielny rodzaj pokrycia terenu. Stad w pozostalych typach obszarow powstaly takie dziury.

Pozotaje chyba reczne zaklejanie tych dziur. Tam gdzie rzeczywiscie droga dzieli dwa osiedla, to oczywiscie ma sens zostawienie dziury, ale szerokosci takiej jak jest w rzeczywistosci, a nie zawsze 5-6 metrow.

Czy nie ma przeszkód, żeby droga przebiegała NA (PRZEZ?) obszar? Czy też trzeba obszar przedzielić na dwa odrębne po każdej stronie drogi?

A jeśli za jakiś czas wzdłuż drogi powstanie pas dla rowerów, to skopiuje punkty po raz kolejny? Może jednak wystarczy dodać atrybut cycleway=?

Jeśli chodzi o doklejanie obszarów do dróg, lepsze wydaje mi się podejście Jajcusia (pkt.2) gdyż upraszcza mapę nie powodując utraty informacji. Drogi mają naturę liniową, a nie płaszczyznową. Liczy się długość a nie powierzchnia. Droga może mieć przecież atrybuty: szerokość pasów, chodniki wzdłuż niej (sidewalk=) itp., wystarczające zarówno do jej narysowania, jak i klasyfikacji.
Wrysowywanie chodników jako odrębnych obiektów, jeśli biegną wzdłuż drogi, niepotrzebnie zwiększa ilość danych, których różnica położenia zbliża się do granicy błędu pomiaru. W idealnym przypadku będziemy mieli drogę, dwa chodniki, drogę dla rowerów (albo dwie, dla każdego kierunku inną), i dwie granice obszaru = sześć!(siedem?) zestawów punktów biegnących równolegle. Oczywiście pod warunkiem, że chodnik zostanie drogą, a nie obszarem, no i nikt nie narysuje trawnika :wink:
Czy wtedy coś zyskamy w porównaniu do jednej drogi opisanej jako posiadająca chodniki (np. sidewalk=both) i drogę rowerową (np. cycleway:left=lane)?

Poza tym, ze na drodze raczej nikt nie mieszka (a wiec nie jest to landuse=residential), to chyba nie ma. Czesto prowadze ulice przez landuse=residential.

Ja używam tych tagów gdy chodnik jest połączony z drogą (czyt. nie ma np. zieleni pomiędzy), dzięki temu łatwo wywnioskować gdzie można zaparkować (oczywiście za to są odpowiedzialne już inne tagi).