Balbulus
(Balbulus)
April 17, 2025, 2:31pm
1
Ich mache Karten der Sahara mit Maperitive. Diese Software behandelt die Strassen entsprechend ihrer Kategorie. Nun gibt es aber einfache Pisten, die asphaltiert sind und Teile von Nationalstrassen, die keinen festen Belag haben. Ich möchte darum z.B. Pisten der 3. Kategorie, die asphaltiert oder betoniert sind, anders darstellen lassen als die einfacheren Pisten:
elseif : *tertiary
define
min-zoom : 13
line-color : #ECA2A3
line-width : 10:2;13:3;15:10;18:12
border-style : dot
border-color : #ECA2A3
border-width : 15%
if surface=paved
line-style : line
els line-style : dashlong
Doch dann kommt die Meldung:
ERROR: Unrecognized command ‘if surface’ (line=880, col=4)
Wie kann ich es besser machen?
Versuch’s mal statt mit if
mit for
, weil du nach Tags und nicht nach Features unterscheiden möchtest:
for : surface=paved
define
line-style : line
else
define
line-style : dashlong
Das if
braucht unabhängig davon auf jeden Fall einen Doppelpunkt.
Siehe auch Maperitive: Rendering Rules Introduction
Balbulus
(Balbulus)
April 17, 2025, 7:46pm
3
Danke für den Tipp! surface wurde akzeptiert, aber line-style : line nicht. Ich mache morgen weiter.
Darauf hatte ich gar nicht geachtet. Du meinst wahrscheinlich line-style : solid
Balbulus
(Balbulus)
April 18, 2025, 12:58pm
5
Jetzt habe ich es geschafft:
elseif : *tertiary
define
min-zoom : 13
line-color : #ECA2A3
line-style : dashlong
line-width : 10:2;13:3;15:10;18:12
border-style : dot
border-color : #ECA2A3
border-width : 15%
for : surface=asphalt
define
line-style : solid
elsefor : surface=paved
define
line-style : solid
else
define
line-style : dashlong
draw : line
for : tunnel=yes
define
border-style : dot
for : bridge=yes
define
border-color : #000
draw : line
define
min-zoom : 10
max-zoom : 13
line-color : white red 75%
border-style : none
draw : line
define
min-zoom : 15
max-zoom : 20
draw : text
Danke, mstriewe, auch der Link hat mir sehr geholfen, so eine Seite suchte ich schon länger!