Styl do Maperitive dla map drukowanych

Ostatnio stwierdziłem, że przydałaby mi się papierowa mapa do sporządzania notatek w terenie podczas zbierania śladów. Niestety nie znalazłem żadnego przyjaznego dla drukarek stylu OSM (nie, stamenowy Toner nie jest przyjazny, przynajmniej nie w rejonach z dużą ilością wody). Musiałem więc sobie sam poradzić grzebiąc w Maperitive (nawiasem mówiąc całkiem fajny program, gdyby tylko nie wymagał tego potworka Mono…).

I tak wymodziłem następujący styl: http://pastebin.com/Csptd700. Wersja aktualizowana: https://gist.github.com/psadk/70e451cc18851030bcc9

Na poziomie 15 (wg mnie optymalnym pod względem szczegółowości i ilości zużytego papieru) prezentuje się on następująco:

Poziomy 13-16: http://imgur.com/a/OO7nX

Jakieś poprawki pewnie jeszcze by się przydały, ale z grubsza wydaje mi się, że jest gotowy.

Może komuś się przyda. Uwagi mile widziane.

Dzięki, właśnie myślałem nad zrobieniem czegoś takiego.

Piknie! Choć można by porównać to ze stylem, w którym secondary/primary byłyby nieco szersze niż pozostałe?
Idealnie byłby sądzę, mieć primary najszersze i residential/unclassified najcieńsze z tertiary i secondary pomiędzy, odpowiednio też różnicując.

Z primary, secondary itd. spróbuję pokombinować, ale drogi przy różnych skalach to mały ból głowy. Na razie są dwie grupy — primary+secondary+tertiary oraz service+unclassified+residential.

Dodałem kilka zmian, z których najważniejsza jest dodanie natural/man_made=peak:

Postanowiłem też wyróżnić track+tracktype=grade1 od pozostałych tracków… i nie mogę się zdecydować na wzór — pogrubiony:

czy podwójny przerywany:

Ponadto doczytałem o możliwości użycia tekstur i pewnie niedługo zacznę dłubać przy v2 z „bardziej realistyczną” wodą, lasem, trawą itp. (przy czym zostawię v1 z wbudowanymi „szlaczkami”).

Dotychczas znalezione błędy: natural=wood powinien być rysowany jak landuse=forest, ale z uporem godnym lepszej sprawy nie chce się rysować w ogóle. Ponadto rzeka przepływająca przez jezioro niby powinna się renderować pod nim, a nie nad, ale również ma inne plany. Jakby ktoś z doświadczeniem przy Maperitive wiedział dlaczego tak się dzieje, byłbym wdzięczny za wskazówkę.

Edycja: wersja z poprawkami: http://pastebin.com/yPFZFT1Z

Pogrubione jest dużo lepsze (a raczej - jestem do takiego typu oznaczania przyzwyczajony).

Linie zawsze będą się pokazywać nad obszarami. Patrz http://maperitive.net/docs/Map_Layering.html#Symbols%20And%20Layering

Dzięki.

Okazuje się, że natural=wood jednak wyświetla się jak landuse=forest… z wyjątkiem Kampinosu, który jest białą plamą.

Może wyróżnić też mosty?

Dobry pomysł, dzięki.

Kurczę, jakbym wiedział jakie to będzie angażujące, to pewnie bym się za to nie zabierał. :slight_smile:

Czy ten las który nie chce się pokazywać nie jest czasem relacją? W jaki sposób pobierasz dane do wyświetlenia? Obstawiam że nie pobiera się cały multipolygon.

Pewnie jak większość z nas bawiących się z OSM. :slight_smile: :slight_smile: :slight_smile:
Bardzo Ci dziękuje za dobry pomysł i szlifowanie go!
Będę tego używał w czasie wakacji!

a nie lepiej grade przy tracku rozróżniać w ten sposób, że drogi lepszej jakości mają linie gęściej a gorszej jakości rzadziej (chyba w normalnych mapach topo tak jest)? Jeżeli wszystkie tracki zrobisz podwójną przerywaną to pojedyncza zostanie Ci wolna na highway=path - a grubością pojedynczej przerywanej rozróżnisz path od footway ;).

Ja bym jeszcze renderował osobno drogi z surface=unpaved - przy mapowaniu taka informacja się przydaje, bo często trafiam na sytuację że w bazie jest informacja, że droga jest kiepskiej nawierzchni a np. kilka miesięcy wcześniej gmina położyła nowy asfalt - a takie niezgodności mają ogromny wpływ na routing :). W drugą stronę też tak jest - niby highway=residential a samochodem strach jechać (a na track się nie kwalifikuje).

jako ciekawostkę wkleję regułki, które przy kompilacji map garminowych wykrywają, czy droga jest kiepskiej jakości (uwzględnia się to w routingu):

highway=*
& (surface=cobblestone | surface=compacted | surface=dirt |
   surface=earth | surface=grass | surface=grass_paver |
   surface=gravel | surface=grit | surface=ground | surface=mud |
   surface=pebblestone | surface=sand | surface=unpaved |
   mtb:scale=* |
   tracktype ~ 'grade[2-6]' |
   smoothness ~ '.*(bad|horrible|impassable)' |
   sac_scale ~ '.*(mountain|alpine)_hiking' |
   sport=via_ferrata)

Podczas testów w Maperitive, przez Download Map Data (Overpass API). Możliwe, że jak mówisz nie pobiera się cały multipolygon.
Normalnie przy generowaniu mapy interesującego mnie obszaru pobieram *.osm przez Overpass wybierając obszar na osm.org.

Tymczasem wyróżniłem mosty: http://i.imgur.com/2fJwfL7.png
Oraz dodałem natural=tree: http://i.imgur.com/aPvOWGy.png

track grade1 zdecydowałem zrobić pogrubione, podwójną przerywaną zostawię (w odległej przyszłości ;)) dla nieasfaltowych residential, service itp.

Po południu jeszcze spróbuję pokombinować z różnymi szerokościami dróg.

Edycja:

rogal: dzięki za uwagi. I gotowiec do „nieasfaltówek”, właśnie o czymś takim myślałem!

Problem w tym, że w Maperitive nie ma znowu aż tak wiele stylów rysowania linii: http://maperitive.net/docs/Properties/LineStyle.html
A przecież muszę mieć coś jeszcze na chodniki, ścieżki i drogi rowerowe.

Obecnie jest następująco:

  • solid: track (grade1 pogrubiony)
  • dashlong: path
  • dash: footway
  • dashdotdot: cycleway

Edycja 2: inaczej spróbuję — wszystkie tracki pogrubię jak grade1 (aby się odróżniały od ścieżek itd.) i porobię różne style linii dla różnych typów tracków. Zobaczymy co z tego wyjdzie. :slight_smile:

Wątpię byś miał ochotę na zabawę z gitem (choć miałoby to sens gdyby się pojawiły jakieś ikonki czy inne dodatkowe pliki), ale http://gist.github.com/ jest proste w obsłudze i to chyba dużo lepsze miejscem na wklejki które są zmieniane i ulepszane.

A mtb:scale=* nie jest doskonałe, mtb:scale = 0- może pojawić się na czymś będącym normalną drogą.

Dzięki.

Na Gita jestem uczulony, ale ten gist wydaje się ciekawy. :slight_smile:

Edycja: mosty do poprawy, kładki dla pieszych renderują się koszmarnie :frowning:

IMHO wystarczy tracki podzielić na dwie klasy (lepsze/gorsze), żeby nie wprowadzać zamieszania.

Ja bym dał:

  • dash dla tracków lepszych (grade 1-2)
  • dashlong dla tracków gorszych (reszta)
  • dot dla path i footway (można grubością rozróżniać)
  • dash10to2 dla dróg rowerowych

każda mapa jest pewnym uproszczeniem rzeczywistości - a czarno-biała wymaga sporej gimnastyki :). Moim zdaniem dla czytelności warto uprościć sporo rzeczy - tak, aby na pierwszy rzut oka było widać czy mapa zgadza się z terenem a nie czy track jest grade5 czy grade6 ;).

Może połączenie stylów dot (szerokie) i solid (wąskie) na jednej linii może być użyte jako dodatkowy styl linii?

W https://github.com/mkoniecz/bicycle_map_of_Krakow używam


	define
		min-zoom: 12.5
		line-width: 14:1.5; 15:2
		line-style: dot
		border-width: 0%
		draw: line
	define
		line-width: 1
		line-style: solid
	draw: line

O, nawet nie wiedziałem, że tak można. :slight_smile:

Tymczasem prawie zwalczyłem nieszczęsne mosty, jeszcze tylko drobny szlif dla mostów na chodnikach, torach i drogach:

Poniekąd cieszę się, że byl problem, bo ta koncepcja bardziej mi się podoba :slight_smile:

https://gist.github.com/psadk/70e451cc18851030bcc9

Brakuje kilku highway:

motorway, motorway_link, trunk, trunk_link, primary_link, secondary_link, tertiary_link (highway1 ?)
living_street (highway2 ?)
pedestrian (footway ?)

z bardziej egzotycznych których w Polsce są pojedyncze egzemplarze
bridleway (path ??)
raceway (highway2 ??)

Może by też pokazywać linie wysokiego/niskiego napięcia? Są to doskonałe punkty orientacyjne (power=line na liniach i power=tower na punktach dla wysokiego napięcia, power=minor_line i power=pole dla niskiego).

Dzięki!

Dobry pomysł, dzięki!

Edycja:
Jeszcze spróbuję dodać barrier=* do renderowania.

I może jeszcze addr:housenumber (z addr:housename i name jeśli są) na budynkach, przynajmniej w miastach jest to przydatne.