Mit Maperitive NUR Straßen rendern?

Hallo,

ich versuche mir grad rules in maperitive anzuschauen (ich bin sehr neu hier :wink: ).

Ich möchte eigentlich dass nur straßen gerendert werden.

Wie müsste sowas aussen?!

Gruß

Pfannkuchen

am einfachsten, indem du mit osmfilter alles außer Straßen rauswirfst. Dann ist dein Datenbestand wesentlich kleiner, und die Karte ist schneller fertig.

Gruß,
ajoessen

Du musst grundsätzlich in den Rules zuerst festlegen, was du rendern willst, und dann, wie du es rendern willst. Ein Beispiel, welches dir sämtliche Strassen als schwarze Linien rendern sollte:

features
    lines
	strassen: highway=*
rules
	target : strassen
		define
			line-color : #000000
			line-width : 1		
		draw : line

Wichtig ist es, auf die korrekten Einrückungen zu achten, da die Rules Datei sonst nicht funktioniert. Ich kann den Code grad nicht testen, weil ich unterwegs bin, aber ich denke das sollte so gehen. Ansonsten hilft auch ein BLick ins Wiki weiter.

Grüße

Wow,

dass ich hier so schnell Hilfe bekomme, habe ich nicht gedacht!
Vllt. sollte ich mich auch etwas genauer ausdrücken:

Ich möchte eine karte haben, auf der alle Straßen NICHT als linien, sondern in der wirklichen breite abgebildet sind - als polygonlinien oder flächen.

Bei dem Script oben, bekomme ich eine schöne komplett weiße fläche ausgegeben :wink:

Woran liegts?

Grüße,

Pfannkuchen

PS.: woher weis ich eigentlich dass straßen “highway=*” sind?

Das weißt du nur, in dem du das Tagging von OSM verstehst (keine Ahnung wie neu du bist und ob du schon einmal was getagged hast - wenn “pfannkuchen2001” dein Nick auf OSM ist, dann nicht…)

Wenn du dort taggen kannst, weißt du auch nach was du suchen kannst/musst - oder eben wie die diversen Taggings heissen. Ohne OSM-Kenntnisse könnte es schwierig für dich werden…

Edit: Die Weiße Fläche? Hast du OSM-Elemente (im speziellen Fall Straßen) in Maperitive heruntergeladen?

Hi,

ich habe noch nie was getaggt…
Die OSM Daten für das gebiet wo ich die Straßen sehen will habe ich geladen. Ein Andere Script (Schwarzpläne - http://wiki.openstreetmap.org/wiki/User:ABRob/Maperitive_Regeln/Schwarzplan )
funktioniert wunderbar!

Gruß

Pfannkuchen

Vielleicht auch beachten:

Die Einrückungen für jede Zeile in der Parameterdatei von Maperitive dürfen nicht aus Leerzeichen bestehen, es müssen Tabulatoren verwendet werden!

Oder liege ich da falsch?

Nein, das ist richtig. Ich habe auch den Ganzen block nochmal abgeschrieben - fein säuberlich mit tabulatoren etc → keine verbesserung - das bild ist einfach sauber weiß, wenn ich die Regel anwende.

Könnte vllt. jemand diese Regel mal probieren ob sie denn woanders klappt?

Ich hab das jetzt auf einem Mac und einem WIndowsrechner probiert - bei beiden Erfolglos.

Grüße,

Pfannkuchen

er nimmt den * bei highway=* nicht. Ersetze mal den Stern durch “residential” oder durch “service” oder aber durch primary, secondary tertiary - je nach dem, wo du dich befindest.

Und ich glaube nicht, dass es einen Sammelbefehl für alle Straßen gibt… (zumindest konnte ich nichts finden…)

Ich habe jetzt dem Script mal ein

properties
	map-background-color	: #0B614B

hinzugefügt, um zu sehen, ob es überhaupt gelesen wird. Es wird gelesen - ich kann jedenfall die Hintergrundfarbe ändern ,)

Aber warum sehe ich jetzt keine Strassen!?

Gruß

Pfannkuchen

Eh klar - kaum drück man auf “Submit” findet man die Lösung - lass das “=*” einfach weg. Dann geht es.

Tataaaa! Das wars!

das funktioniert :slight_smile:

Nun habe ich aber noch das Problem, dass ich nur linien bekomme und keine flächen.

Gibt es da eine möglichkeit?

Grüße,

Pfannkuchen

Maperitive rechnet keine Flächen entsprechend der Straße - dazu musst du rules aufstellen, welche sich entweder aus “lanes=2” > line-width=10px (bei zoom 15 - oder so) definiert oder aber entsprechend der Breite (width=*), welche sich aber auch am Way-Element befinden muss (also muss das jemand einmal eingegeben haben…)

Leichter ist es glaub ich über “lanes” und je nach Straße dann Breiten ausrechnen lassen…

Aber du wirst sicher keine schnellen Erfolge entsprechend deiner Vorstellung erzielen. Dafür zwei Gründe: a.) kennst du die Tagging-Schemen in OSM nicht und b.) du hast wahrscheinlich nicht die entsprechenden Taggings in deiner Region… Ist leider so.

hmm, das klingt nicht so gut,

ich habe mal sowas hier probiert:

features
	areas
		strassen : highway

properties
	map-background-color	: #0B614B

rules
	target : strassen
		define
			fill-color : black
		draw : fill

Da bekomme ich nur schwarze flecken angezeigt…
Das ist ein bischen ärgerlich, da ich ein präzieses Straßennetz von Essen brauche - ich beschäftige mich grad SpaceSyntax im Architekturstudium - Vllt. hat ja jemand noch andere Ideen, wie ich an soetwas herankomme?

Grüße,

Pfannkuchen

In OSM gibt es im prinzip nur Punkte Linien und geschlossene Linien (interpretiert als Fläche).

Deshalb ist eine Strasse erstmal nur eine Linie.
Um dieses Problem zu nivillieren wurde width und auch lanes - aber das ist recht spährlich eingetragen.

Das einzige was mommentan funktioniert ist jeder entsprechenden Zoomstufe eine definierte Pixelbreite mitzugeben.

dies teilst du maperitive so mit: line-width : 12:0.75;13:1.5;14:2;15:4;16:8

Du könntest dich auch mal mit den verschiedenen tags für Straßen vertraut machen, von hier: http://wiki.openstreetmap.org/wiki/DE:Key:highway
und dann einfach oben

features
    lines
	autobahn: highway=motorway
        landstrasse: highway=secondary

…usw vergeben und für jeden Typ dann ne Breite definieren, die deiner Darstellung am besten dient (und natürlich wie von quasilotte erwähnt das ganze in unterschiedlichen Zoomstufen unterschiedlich machen)