auch wenn Maperitive schon in die Jahre gekommen ist scheint es mir aktuell der sinnhafteste Weg zu einem soliden SVG Export zu sein. Nach einem halben Tag habe ich nun für eine Kleinstadt bereits Bushaltestellen und Radwege ordentlich darstellen lassen können.
Leider gelingt es mir nicht die Radwege ordentlich zu beschriften. Die Daten stehen da aber ich komme auch mit Hilfe der Python API nicht wirklich weiter.
lines
bike : relation[type=route AND route=bicycle]
target : bike
define
line-color : orange
border-color : orange
draw : line
define
text : ref
font-size : 12
text-color : green
draw : text
das ist mein Arbeitsstand, allerdings bekomme ich dadurch nicht die vorhandenen Radwegebeschriftungen eingebunden. Das mag möglicherweise mit einem Missverständnis der Datentypen zusammenhänge?
Über Hilfestellungen freue ich mich sehr. Alternativ gerne auch über Hinweise auf andere Tools/Software, Prämisse ist aber ein Vektor-Exportformat mit entsprechenden Gestaltungsmöglichkeiten.
da Maperitive in C# geschrieben hast, wird die Python API nicht weiterhelfen.
du möchtest “Siebenstern-Radweg” anzeigen, was in name steht, in der Rule verweist du aber auf text : ref
Wird denn die Route(nlinie) überhaupt dargestellt? Welchen Datensatz verwendest du? Wie hast du dir diesen Datensatz zusammengestellt? Sprich ist denn die Route überhaupt in deinem Datensatz drin?
Maperitive habe ich selbst zuletzt ca. 2018/2019 genutzt, seit dem bin ich auf QGIS umgestiegen (natürlich eine ganz andere Liga)
Maperitive ist als Einstieg zum Rendern nicht falsch, auch wenn es seit Jahren nicht mehr weiterentwickelt wird (man muss es daher so nehmen, wie es ist, ändern wird sich da nix mehr). Es macht mit dem OSM-Daten vieles im Hintergrund automatisch und nicht alles kann daher angepasst werden. Das, was du vorhast, müsste aber klappen.
Du brauchst neben deiner Rules-Datei auch noch eine Python-Datei, z.B. cycleLabel.py
def cycleLabel(e):
str_list = []
for set in e.tagSets:
if set.hasTag('name'):
str_list.append(set['name'])
str_list.sort()
return '+'.join(str_list)
und in der Rules-Datei importierst Du das py-Script und nutzt bei den Features osmnetwork und bei der Rule text-func
import-script:cycleLabel.py
features
lines
bike : osmnetwork[type=route AND route=bicycle]
rules
target: bike
define
line-color : orange
border-color : orange
draw : line
define
text-func : cycleLabel(e)
font-size : 12
text-color : green
draw : text
@Harald_Hartmann sorry für die Verwirrung, name hatte ich ausprobiert, aber der Code spiegelt Bastelstand wieder, da hatte ich versucht unterschiedliche Parameter abzurufen. Tatsächlich hat maperitive im letzten Stand eine nicht ordentlich dokumentierte API.
@Andreas_Binder dass es nicht mehr entwickelt wird ist mir bekannt, QGIS hatte ich im Blick aber auf die Schnelle keinen Vektorimport via OSM hinbekommen. Solltest du dazu ein Tutorial (oder ein paar Stichworte) kennen nehme ich das gerne an, da war ich dann vielleicht zu unfähig zu googlen?
das von dir genannte Python-Script hatte ich auch ausprobiert. Leider wird auch hier bei der Eigenschaft “name” der Straßennahme abgerufen. Ich habe zwischenzeitlich versucht mit meinen beschränkten Python Fähigkeit, mangels Dokumentation, das object set via Maperitive Konsole zu zerlegen. Leider konnte ich da nicht weiter herausfinden ob es weitere Eigenschaften gibt.
Bam. Dann war mein Gedanke “falscher Datentyp” zwar korrekt aber ich habs falsch gedacht. Damit ist das python script übrigens gar nicht nötig. “name” funktioniert ganz hervorragend als text-Eigenschaft
Ja, ohne Py geht es auch, solange jede Straße nur zu einer Radroute gehört. Wenn eine Straße zu mehreren Radrouten gehört, sorgt das Py dafür, dass die Routennamen zu einem “Gesamtnamen” verkettet werden.
Das einfachste ist das QuickOSM Plugin, in diesem Video ganz gut erklärt. QGis kann aber auch das .osm Format öffnen, z.B. aus JOSM. Wenn es immer aktuell bleiben soll, wird man aber nicht um eine Datenbank herumkommen, z.B. postgresql mit der postgis Extension, usw. Hier auf einfach mal auf dem Youtube Kanal von der FossGIS in den Vorträgen stöbern