Mapy wektorowe

Kocio, danych wcale nie mamy za dużo. Owszem drogi są w porządku ale w adresach jest tyle dziur, że gdy próbuję coś znaleźć nawet nie próbuję OSM. A że (przynajmniej w niektórych krajach) adresy są powiązane z budynkami to potrzebne są i one.

Co do potrzeb użytkowników - OSM przede wszystkim potrzebuje bardzo dobrej domyślnej mapy, a nie bazy danych, kursów jak renderować swoją mapę lub jak edytować dane. Gdy OSM będzie powszechnie używane to edytorzy się sami. W obecnej chwili naszym de-facto interfacem do OSM jest Maps.Me, bo po prostu dobrze działa.

Jestem jak najbardziej za kaflami wektorowymi ale ze względu na problemy z Web-GL renderowanymi na żywo po stronie serwera i serwowanymi jak zwykłe kafle rasterowe. Można też nadal używać kafli rasterowych i, jak wspomniał rowers2, nakładać przezroczyste kafle z nazwami w różnych językach, liniami kolejowymi/autobusowymi, ścieżkami rowerowymi, punktami. Może to nie jest tak efektowne jak kafle wektorowe ale działa.

To są QA tiles, więc jak nazwa wskazuje służą do analiz ku kontroli jakości mapy.
Niezbyt się nadają do renderu.
Ja się nie wgłębiałem w ten temat, bo niestety słabo się nadają do pewnych analiz - dostarczony do ich przetwarzania program nie potrafi ładować kafelków sąsiadujących z przetwarzanym, żeby mieć margines-bufor wokół tegoż.

Nie mówiłem w sensie, że nie potrzebujemy więcej, tylko że jest ich już tak dużo, że niepraktycznie się z nich korzysta. Narodowe forki osm-carto zwykle (poza najsilniejszymi społecznościami jak np. Niemcy czy Francuzi) robią mapkę tylko swojego kraju. Podejrzewam, że właśnie dlatego, że cały świat to już wymaga lepszego sprzętu. Zwykły użytkownik tym bardziej nie ma z nich pożytku (poza oglądaniem na gotowych mapkach).

Mógłbyś rozwinąć co to dla ciebie znaczy? Najlepiej w odpowiednim wątku:

https://forum.openstreetmap.org/viewtopic.php?id=26176

Podpowiem tylko, że jakiś ogólny zarys jak to obecnie rozumiemy jest tu:

https://github.com/gravitystorm/openstreetmap-carto/blob/master/CARTOGRAPHY.md

Czekam kto to zrobi i wdroży, bo też bym poszedł na takie częściowe rozwiązanie.

Cześć Kocio (@All)

Przepraszam, że nie odezwałem się wywołany do tablicy - raz że rzadko tu zaglądam, dwa że powoli zaczynam robić bokami…

Przyznam się że nawet całego wątku nie przeczytałem.

Postawiłem kiedyś taki konstrukt ale klient sobie zażyczył duże zmiany w stylu i zawartości kafelków - Jak tłukłem do głowy, że ilość danych w kaflach poszczególnych leveli jest specjalnie tak dobrana żeby złapać kompromis między szczegółowością mapy a wydajnością zarówno renderowania jak i generowania samych kafli to mnie nikt nie słuchał po cichu komentując, że się mi nie chce robić… Jak już zrobiłem i na podstawie pierwszej doby oszacowałem, że na 4c./8t 32G Ram HDD Tier5 to się będzie generować 130 dni to się rozmyślili…

Ja się opierałem na openmaptiles i TileServer Klokantecha.

Rozwiązań jest wiele i trzeba by je dobrze przejrzeć zanim się na coś zdecydujemy(cie) - to fundamentalna decyzja która - jeśli będzie podjęta na szybko - będzie nas kopać w dupę jeszcze długo.

W razie W polecam do kontaktu Skype - jedrus305 :slight_smile:

Dobre wieści (choć jeszcze wczesne): wygląda na to, że są szanse na migrację OSM Carto na kafelki wektorowe.

Andy radzi, żeby zrobić to stopniowo, tzn. żeby zacząć od wewnętrznego generowania kafelków rastrowych na serwerze z tych kafelków wektorowych. To pewnie wygląda na niepotrzebne kombinowanie, ale dzięki temu nie trzeba od razu zajmować się aplikacją po stronie klienta, a przy okazji jest zgodność wsteczna dla tych, którzy korzystają z tego podkładu albo mają po prostu słabsze maszyny. W zasadzie to rozwiązanie już jest w użyciu, bo Andy stosuje je od 4 lat w warstwie rowerowej i transportu publicznego:

https://www.youtube.com/watch?v=NoLJHgqDCzc

Co ważne, Andy jest aktywny w dziale technicznym OSMF (Operations Working Group), więc są szanse, że to nie będzie tylko sztuka dla sztuki, tylko że naprawdę ten nowy styl po prostu zastąpi OSM Carto - tak jak wcześniej OSM Carto zastąpiło styl z Mapnik XML.

Jest też szansa, że włączy się w to Rory McCann, który 2 lata temu zrobił fork wektorowy (czyli jeszcze za czasów serii v3.x):

https://2016.stateofthemap.org/2016/converting-a-regular-carto-project-to-vector-tiles-osmcarto-case-study/
https://github.com/geofabrik/openstreetmap-carto-vector-tiles

Być może nie warto będzie go odświeżać do serii v4.x, tylko zrobić nowy fork, ale na razie najważniejsze, że te dwie osoby plus Paul Norman to już 3 ekspertów od kafelków wektorowych, którzy mogą sensownie wspomóc ten proces. Zaczynam być dobrej myśli, że wreszcie zaczniemy używać współczesnych technologii, które dają więcej możliwości i dobrze świadczą o projekcie, zamiast siedzieć w średniowecznych kafelkach rastrowych.

I tak warto mieć polski serwer na nasze projekty, ale ta migracja mogłaby się odbywać na serwerach fundacji, co dużo by uprościło technicznie i organizacyjnie.

Taka ciekawostka jak sobie postawić lokalny serwer mapek wektorowych za pomocą gotowych kafelków:

https://blog.klokantech.com/2018/04/maps-with-docker.html

Jak ktoś ma Linuksa, to powinno być łatwo, bo to w Dockerze. Dla innych systemów Docker też może już być, ale jeśli ma się starsze Windows czy macOS, to zawsze pozostaje kombinacja VirtualBox i instalacja np. Ubuntu w środku, a dalej już tak samo.

Interesujące są też uwagi jak oni te kafelki produkują.

Żeby dłużej nie zwlekać, otworzyłem bilecik w sprawie migracji osm-carto na kafelki wektorowe:

https://github.com/gravitystorm/openstreetmap-carto/issues/3201

Dokładnie dockerów klokantecha używałem - jak piszesz nie jest szczególnie trudno (na początek)… Grzebanie w stylu to już inna akcja, zwłaszcza jak chcesz dodatkowo zmienić poziomy wyświetlania. Sam proces przygotowania danych do kafelków jest dość złożony, bo dla kafli niskich zoomleveli wszystkie dane na nich widoczne (woda, ląd, główne granice administracyjne) są uproszczane w bazie więc np. dla granic państw jest tam zdublowany (chyba) 5 razy zestaw danych, każdy dla innego docelowego ZL i każdy z innym stopniem generalizacji…

Magia… mimo, że dość przejrzyście napisana to sam stopień złożoności implikuje to, że trzeba się dobrze skupić żeby zacząć w tym grzebać :slight_smile:

Tak powoli zaczynam zbierać konkretne rozwiązania, bo idea jest już jasna.

Andy napisał, że jego style jadą na jakichś własnych wynalazkach bazujących na tilelive (https://github.com/mapbox/tilelive) - domyślam się, że nie na wolnej licencji. Rory z kolei mówił, że w Geofabrik próbowali tilelive-copy (czyli pewnie to samo), ale działało powoli, więc napisał kawałek własnego softu (https://github.com/rory/tileigi), który jest o wiele szybszy, za to ma jeszcze różne błędy. Czy ktoś może potestować trochę te narzędzia?

Dobre wieści - Paul Norman ma już jakiś kod, który może posłużyć do migracji:

https://www.openstreetmap.org/user/pnorman/diary/43814
https://github.com/pnorman/bolder

Nie korzysta z Mapnika, nie wiem jak z wydajnością i nie wiem jak trudno będzie przenieść to, co mamy w osm-carto, do tego stylu, ale dopiero czekam na podsumowanie jego rozmowy z Rorym.

Jak się to odpali, to wygląda tak (dane Liechtensteinu):

I nawet nie wygląda, żeby psuło geometrię:

I zrzuty ze stylem renderowanym po stronie klienta:

Jak tak sobie patrzę na Warszawę… mnie się podoba specyficzny styl drogowy zawarty na tej mapie http://balticmaps.eu/?lang=lv&draw_hash=goiujv&centerx=553766&centery=6275034&zoom=6&layer=map&ls=o Litewskiej, albo Łotewskiej. Zupełnie jakbym patrzył na starą laminowaną mapę drogową (kolory są może trochę mniej intensywne)

Niestety, jak zrozumiałem Bolder to nie jest ścieżka migracji osm-carto, tylko osobny projekt do renderowania kafelków wektorowych po stronie klienta.

Pozostaje natomiast wykonanie kilku rzeczy w kodzie osm-carto, które są potrzebne do migracji:

https://github.com/gravitystorm/openstreetmap-carto/issues/3201#issuecomment-385417611

Czy ktoś z was rozumie co właściwie trzeba zrobić? Chętnie to pociągnę potem, ale niestety sam tego nie wykombinuję.

Z tego zauważyłem dane QA Tiles dla Polski aktualizują się co ok. 10 dni (poprzednio dane były z 2 maja a obecnie są z 11). Można je wykorzystać do różnych wizualizacji:

Typy budynków:

Maksymalna prędkość na drodze:

Esri udostępniło mapkę wektorową bazującą na wyglądzie OSM Carto - nie znam szczegółów technicznych, ale mimo bogactwa szczegółów i renderowania po stronie klienta działa pieruńsko szybko (spróbuję z nimi pogadać, może da się jakoś współpracować sensownie):

https://www.esri.com/arcgis-blog/products/arcgis-living-atlas/mapping/new-osm-vector-basemap/
http://esri.maps.arcgis.com/apps/View/index.html?appid=d6b18a2e774c4959ba855f6ac90952a2

Tu jest podobno kod tego stylu:

https://www.arcgis.com/sharing/rest/content/items/3e1a00aeae81496587988075fe529f71/resources/styles/root.json?f=pjson

Czekam na odpowiedź w sprawie kontaktu do zespołu który tym się zajmuje.

Wygląda to bardzo dobrze, szczególnie cieszą etykietki we właściwych miejscach. Mimo że styl jest teoretycznie kopią OSM-Carto, to występują jednak drobne różnice:

  • ciemniejszy kolor granic (przynajmniej tych międzynarodowych)
  • linie dróg pod obszarami dróg
  • “zlewanie się” połączonych obrysów na chodnikach (kiedy narysuje się osobno obszar dla pieszych i obszar dla rowerów na mapie domyślnej widać między nimi delikatną granicę)
  • dużo grubsze linie z klucza barrier=*
  • obszary highway=service szare a nie białe
  • większe ikony (kwadraty) przystanków tramwajowych

Fajne porównanie mapek wektorowych i kafelków korzystających z danych OSM (jest nawet ręczny wybór języka):

https://www.maptiler.com/cloud/#streets//vector/5.61/21.195/51.386

Na SotM w Mediolanie odbyła się dyskusja na temat kafelków wektorowych na OSM.org i tu jest podsumowanie:

https://github.com/openstreetmap/operations/issues/214#issuecomment-408816591