[Maperitive] Stadtgrenzen von Köln anzeigen

Hallo liebe Kartografie-Experten,
für unser aktuelles Semester brauchen wir einen modifizierten Schwarzplan von Köln. Die Regeln für Maperitive habe ich schon. Allerdings weiß ich nicht, wie ich die Stadtgrenzen (oder auch Stadtteilgrenzen) wieder anzeigen lassen kann. Weiß da jemand, wie ich rauskriege, was ich in die .rules Datei schreiben muss, damit dies geht? Mit der aktuellen Konfiguration klappts nicht.

Hier kann man die Stadtgrenze auf dem Rhein und nördlich von Hitdorf sehen, diese will ich etwa in dem Stil auch behalten zusammen mit den Gebäuden und der Wasserfläche.

So sieht sie aktuell aus:

//    Rules for Maperitive by ABRob/quasilotte
//
//    Schwarzplan
features
	areas
		building : building
		water : natural=water OR waterway=riverbank OR landuse=reservoir OR landuse=basin OR natural=lake OR natural=sea

	lines
		boundary country : boundary=administrative AND admin_level=2
		boundary country : border_type=nation
		boundary district : boundary=administrative AND admin_level=4
		boundary canton : boundary=administrative AND admin_level=5
		boundary commune : boundary=administrative AND admin_level=6
		boundary municipal : boundary=administrative AND admin_level=8
		boundary quartier : boundary=administrative AND admin_level=9
//		railway : railway=rail
		
properties
	map-background-color    : #FFFFFF
	line-style : none
rules
	target : building
		define
			fill-color : black
		draw : fill
	target :water

		define

			min-zoom : 10

			fill-color : #808080

		draw : fill
	target : railway
		define
			line-style : dashlong
			line-color : white
			line-width : 2
			border-style : solid
			border-color : #a1a1a1
			border-width : 50%
		draw : line
		
	target : boundary
		define
			line-opacity : 1
		if : boundary country
			define
				line-color : #0000FF 
				line-style : solid
				line-width : 6:1;9:3;10:6
		elseif : boundary district
			define
				line-color : #9900FF
				line-opacity : 1
				min-zoom : 4
				line-width : 3:1;11:7
				line-style : dash
		elseif : boundary canton
			define
				line-color : #FF0000
				line-opacity : 1
				min-zoom : 6
				line-width : 3:1;9:2;11:7
				line-style : dot
		elseif : boundary commune
			define
				line-color : #999900
				line-opacity : 1
				min-zoom : 8
				line-width : 9:1;11:5
				line-style : dashdotdot
				
		elseif : boundary municipal
			define
				min-zoom : 12
				line-color : #660000
				line-width : 12:1;14:2
				line-style : dash
				
		elseif : boundary quartier
			define
				line-color : #66FF66
				min-zoom : 8
				line-width : 9:0.1;11:1
				line-style : dot
		draw : line

Die Eisenbahn habe ich erstmal ausgeklammert, da wir sie noch nicht brauen. Die Stadtgrenzen wären aber sehr wichtig, da wir wissen müssen, bis wohin die Kölner Bebbauung reicht.

Kann man sogar alles außerhalb Kölns beim Export ausblenden?

Lieben Gruß
Max

Hallo Max,

leider habe ich jetzt aktuell kein Maperitive am laufen um es sicher sagen zu können, aber müsste es nicht


boundary commune: relation[boundary=administrative AND admin_level=6]

sein? Und natürlich muss die entsprechende admin-boundary auch in euren Rohdaten sein, nicht das die z.B. beim Filter rausgeschmissen wurden. Desweiteren würde ich mir von wambachers boundaries map das poly für Köln holen und damit filtern, dann sollte alles außerhalb dieser Grenzen eh schon weg sein.

PS: Wie hab ihr denn überhaupt “exportiert” oder gefilter bzw. eure Rohdaten wie erzeugt?

ADD: nur zur Feststellung, bei eurem


boundary commune : boundary=administrative AND admin_level=6

würde meiner Meinung nach nur die Ways mit diesen Eigenschaften gefiltert werden, aber eigentlich sollten diese Eigenschaften gar nicht an den Ways sein, sondern nur in der Relation stehen

Hallo Max,

herzlich willkommen im Forum.

“target : boundary” heißt, dass der folgende Abschnitt für die Klasse “boundary” gilt, aber du hast keine Klasse “boundary”, sondern “boundary country”, “boundary county” usw. definiert. “target: boundary*” dürfte aber funktionieren.

Nicht so ohne weiteres. Selbst wenn du mit Osmium oder Osmconvert exakt an der Stadtgrenze abschneiden würdest, würden die Geometrien immer noch darüber hinaus ragen. Mir fällt auf Anhieb auch keine Software ein, die direkt an der Grenze die Geometrien abschneidet, da das nicht trivial ist. Mein Vorschlag wäre im Falle von Maperitive (bei Mapnik und Mapserver wäre es in dem Fall einfacher, aber deren Setup ist beim ersten Mal aufwendiger), von Hand ein Polygon zu zeichnen, das den außerkölnischen Teil der Welt/Karte umfasst, auf dem obersten Layer liegt und eine weiße Füllfarbe hat. Ich bin kein SVG-Guru, die wissen u.U. noch mehr.

Viele Grüße

Michael

Diese Einschränkung gilt in der Tat auch für meine Aussage weiter oben … da es aber hier hauptsächlich ja auf die Gebäude ankommt, habe ich das unterschlagen :wink:

@Harald Hartmann

Die Kartendaten wurden ganz normal mit der API von Maperitive runtergeladen (WebMap) und dann hat man ja die Offline OSM-File Karte. Diese mappt/rendert man ja mit den Regeln. Daher weiß ich auch nie, woher ich die “Namen” der Stadtgrenzen bekomme, sodass ich sie in den Regeln explizit weiter angezeigt bekomme.

Generell ist das Abschneiden aller Sachen außerhalb Köln nicht zwingend erforderlich, sondern nur ein “nice to have”.

EDIT: Danke für die Codezeile. Die Stadgrenze ist schonmal sichtbar. Jetzt muss ich nur noch rausfinden, wie ich Linienstärke und Farbe anpasse.

Stadtteilgrenzen lassen sich auch auf diesem Wege noch anzeigen, sofern mal im Semester Bedarf sein sollte?

Oh ha, da könntet ihr gerade nochmal Glück gehabt haben, weil wenn die Datenmenge zu groß ist, streikt dieser Weg.

Wie oben schon erwähnt die boundaries map von wambacher … zumindest dürfte das für euch der “einfachere” weg sein, oder eventuell auch via overpass turbo

ich würde mal sagen das sollte eigentlich selbstredend sein, oder?


				line-color : #999900
				line-opacity : 1 
				min-zoom : 8
				line-width : 9:1;11:5
				line-style : dashdotdot

Klar, so lange es in den OSM (Offline) Rohdaten drin ist und nicht anderweitig “ausgefiltert” wurde

Vermutlich ist dein Vorhaben auch mit Printmaps (http://printmaps-osm.de:8080/) realisierbar. Dies nur als Hinweis, denn so wie es aussieht bist du ja schon recht weit mit dem Maperative-Ansatz gekommen.

Ich finde eure alternativen Vorschläge mit den anderen Diensten wirklich ganz toll. Sieht auch auf den ersten Blick gut aus.

Problem ist nur, mir sagt das alles nichts. Mit GIS und co. kenne ich mich nur im Sinne von Maperitive etwas aus. Ich wüsste weder wie ich printmaps-osm, boundaries map noch overpass turbo benutzen kann… :confused:

Als BPOLY (Buffered Poly-File) mit einem Buffer von 0.1 km. Dadurch ist sichergestellt, dass die Grenze selber - also die Ways aus denen die Stadtgrenze besteht - nicht aus Versehen abgeschnitten wird.

Gruss
walter