User:Zorque/MaperitiveWallart/rules

From OpenStreetMap Wiki
Jump to navigation Jump to search
// Rules for a some wall art by Marc Wessel, https://wiki.openstreetmap.org/wiki/User:Zorque
// based on

// Default rendering rules for Maperitive resembling that of OSM Mapnik
// http://maperitive.net

// Created by Igor Brejc
// Released under the Creative Commons Attribution-ShareAlike 3.0 License (http://creativecommons.org/licenses/by-sa/3.0/)
// Updates by Michael <quelbs_at_gmail.com>
// Icons used: Map icons CC-0 from SJJB Management (http://www.sjjb.co.uk/mapicons)

features
	points, areas

	areas

		area100 : leisure=track
		area100 : aeroway=apron
		area100 : relation[type=multipolygon AND highway=pedestrian]
		area20 : place=square
		area90 : building OR building:part
		area20 : node[@isOneOf(amenity, university, college, school)] area[@isOneOf(amenity, university, college, school)]
		area90 : aeroway=terminal
		area80 : (highway AND area=yes) OR amenity=parking
		area60 : landuse=quarry
		area60 : landuse=forest
		area60 : natural=wood
		area60 : natural=glacier
		area60 : leisure=nature_reserve
		area60 : amenity=grave_yard OR landuse=cemetery
		area60 : landuse=military OR military=barracks
		area40 : leisure=park
		area40 : leisure=garden
		area40 : landuse=orchard
		area40 : landuse=farmland
		area40 : natural=beach
		area40 : landuse=village_green
		area40 : landuse=farm
		area40 : landuse=farmyard
		area40 : landuse=grass
		area30 : leisure=golf_course
		area40 : natural=fell
		area40 : natural=scrub
		area40 : boundary=national_park
		area40 : natural=meadow OR landuse=meadow
		area40 : leisure=playground
		area30 : leisure=pitch
		area30 : leisure=stadium
		area30 : landuse=allotments
		area30 : landuse=construction
		area30 : landuse=brownfield
		area20 : landuse=retail
		area20 : landuse=industrial
		area20 : landuse=commercial
		area20 : landuse=residential
		water : natural=water OR waterway=riverbank OR landuse=reservoir OR landuse=basin or waterway=dock
				

	lines
		coastline : natural=coastline
		river : waterway=river
		stream : waterway=stream
		canal : waterway=canal
		drain : waterway=drain
		dock : waterway=dock
		railway rail : railway
		platform : railway=platform OR public_transport=platform
		line barrier : barrier=wall OR barrier=fence
		highway motorway : (highway=motorway OR (highway=construction AND construction=motorway)) AND NOT area=yes
		highway motorway link : (highway=motorway_link OR (highway=construction AND construction=motorway_link)) AND NOT area=yes
		highway trunk : (highway=trunk OR (highway=construction AND construction=trunk)) AND NOT area=yes
		highway trunk link: (highway=trunk_link OR (highway=construction AND construction=trunk_link)) AND NOT area=yes
		highway primary link : (highway=primary_link OR (highway=construction AND construction=primary_link)) AND NOT area=yes
		highway primary : (highway=primary OR (highway=construction AND construction=primary)) AND NOT area=yes
		highway secondary : (highway=secondary OR (highway=construction AND construction=secondary)) AND NOT area=yes
		highway tertiary : (highway=tertiary OR (highway=construction AND construction=tertiary)) AND NOT area=yes
		highway unclassified : (highway=unclassified OR (highway=construction AND construction=unclassified)) AND NOT area=yes
		highway residential : (highway=residential OR (highway=construction AND construction=residential)) AND NOT area=yes
		highway living_street : (highway=living_street OR (highway=construction AND construction=living_street)) AND NOT area=yes
		highway service : (highway=service) AND NOT area=yes
		highway pedestrian : (highway=pedestrian) AND NOT area=yes
		highway track : (highway=track) AND NOT area=yes
		highway footway : (highway=footway) AND NOT area=yes
		highway cycleway : (highway=cycleway) AND NOT area=yes
		highway path : (highway=path) AND NOT area=yes
		highway steps : (highway=steps) AND NOT area=yes
		pier : man_made=pier
		bridge foot : bridge=yes AND (foot=yes OR highway=footway)
		aerialway closed: @isOneOf(aerialway,cable_car,gondola,mixed_lift)
		aerialway open: @isOneOf(aerialway,chair_lift,drag_lift)

		aeroway runway : aeroway=runway
		aeroway taxiway : aeroway=taxiway

		contour major : contour[@isMulti(elevation, 100)]
		contour minor : contour[@isMulti(elevation, 20) and not @isMulti(elevation, 100)]

// Routes

properties
	map-background-color	: #f5ccf5
	// petrol #005a7.3 #ccdee.3
	// purple #80008.0 #f2e5f.2
	// pink #cd00c.d #f5ccf.5
	map-background-opacity	: 0.9
	map-sea-color : #B5D0D0
	font-weight : bold
	font-family : Verdana
	text-max-width : 7
	text-halo-width : 25%
	text-halo-opacity : 0.75
	text-align-horizontal : center
	text-align-vertical : center
	font-stretch : 0.9
	map.rendering.lflp.min-buffer-space : 5
	map.rendering.lflp.max-allowed-corner-angle : 40

rules
	
	target : $featuretype(area)
		define
			line-style : none
			line-width : 1
		
		if : area90
			define
				min-zoom : 10
				fill-color : #cd00cd white 10%

		elseif : area80
			define
				min-zoom : 10
				fill-color : #cd00cd white 20%
				
		elseif : area60
			define
				min-zoom : 10
				fill-color : #cd00cd white 40%
				
		elseif : area40
			define
				min-zoom : 10
				fill-color : #cd00cd white 60%
				
		elseif : area30
			define
				min-zoom : 10
				fill-color : #cd00cd white 70%
				
		elseif : area20
			define
				min-zoom : 10
				fill-color : #cd00cd white 80%
				
		elseif : area100
			define
				min-zoom : 10
				fill-color : #cd00cd white 0%

		else
			stop
		draw : fill


	target : aeroway runway
		define
			min-zoom : 11
			line-color : #cd00cd white 0%
			line-width : 11:2;15:20
		draw : line

	target : aeroway taxiway
		define
			min-zoom : 11
			line-color : #cd00cd white 0%
			line-width : 11:1;15:6
		draw : line

	target:aerialway *
		define
			min-zoom:12
			line-width:1
			line-style:solid
			line-color:#cd00cd
		draw:line

	target : platform
		define
			min-zoom : 13
			line-color : #cd00cd white 0%
			line-width : 3
		draw : line
	target : railway rail
		define
			min-zoom : 6
			max-zoom : 13
			line-style : none
			line-color : #cd00cd white 0%
			line-width : 6:1;8:1;12:1.5
		draw : line
	target : railway*
		define
			min-zoom : 13
			line-color : #cd00cd white 0%
			line-width : 2
		draw : line
		define
			min-zoom : 15
			text-align-horizontal : center
			text-align-vertical : center
		

	target : highway*
		define
			font-size : 15:7;18:10
			font-weight : bold
			fill-color : #cd00cd white 0%
			border-width : 25%
			border-color : #cd00cd white 80%

		for : oneway=yes OR oneway=true
			define
				min-zoom : 15
				shape : custom
				shape-def : 60,0,20,-40,20,-15,-60,-15,-60,15,20,15,20,40;Z
				shape-size : 12
				shape-aspect : 0.75
				shape-spacing : 6
				fill-color : #6C70D4
				line-style : none
			for : oneway=-1
				define
					angle : 180
			

		define
			line-style : solid
			line-join : round
			line-start-cap : round
			line-end-cap : round
			line-color : #cd00cd white 0%

		if : *motorway*
			if : *link
				define
					line-width : 7:1;12:3;13:4;16:5;18:6
			else
				define
					line-width : 7:1;9:2;12:3;13:7;16:10;18:12
			define
				min-zoom : 12
			draw : line
			define
				min-zoom : 7
				max-zoom : 12
				border-style : none
			draw : line
			define
				min-zoom : 10
				max-zoom : 20
				font-family : Tahoma
				text-align-horizontal : center
				text-align-vertical : center
				text : ref
				font-size : 12
				text-color : #fcfcfb
				text-halo-width : 0
				shape : custom
				shape-def : p:#809bc0;pw:5;f:#809bc0;m:-10,-10;l:10,-10;a:10,10,10,10;l:-10,10;a:10,10,-10,-10;z;p:#fcfcfb;pw:2;m:-10,-10;l:10,-10;a:10,10,10,10;l:-10,10;a:10,10,-10,-10;z
				shield-padding-left : 5
				shield-padding-right : 5
				shield-padding-top : 7
				shield-padding-bottom : 7
				shield-resize-mode : free
			
		elseif : *trunk*
			define
				min-zoom : 12
				line-width : 11:1;13:2;15:10;18:12
			for : tunnel=yes
				define
					border-style : dot
			draw : line
			define
				min-zoom : 7
				max-zoom : 12
				border-style : none
			draw : line
		elseif : *primary*
			define
				min-zoom : 11
				line-width : 11:2;12:2;15:10;18:12
			for : tunnel=yes
				define
					border-style : dot
			draw : line
			define
				min-zoom : 7
				max-zoom : 11
				border-style : none
			draw : line
			define
				min-zoom : 13
				max-zoom : 20
			
		elseif : *secondary
			define
				min-zoom : 12
				line-width : 10:1;11:2;13:2;15:10;18:12
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			define
				min-zoom : 8.5
				max-zoom : 12
				border-style : none
			draw : line
			define
				min-zoom : 13
				max-zoom : 20
			
		elseif : *tertiary
			define
				min-zoom : 13
				line-width : 10:1;13:2;15:10;18:12
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			define
				min-zoom : 10
				max-zoom : 13
				border-style : none
			draw : line
			define
				min-zoom : 15
				max-zoom : 20
			
		elseif : *service
			define
				min-zoom : 13
				line-width : 12:0.5;13:1;15:3;18:5
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
						
		elseif : *pedestrian
			for : not area
				define
					min-zoom : 13
					line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:5;18:6
				for : tunnel=yes
					define
						border-style : dot
				for : bridge=yes
					define
						border-style : dot
				draw : line
			

		elseif : $regex("(.*residential)|(.*unclassified)")
			define
				min-zoom : 13
				line-width : 12:1;13:1.5;15:6;18:15
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			define
				min-zoom : 10
				max-zoom : 13
				border-style : none
			draw : line
			define
				min-zoom : 15
				max-zoom : 20
			
		elseif : *living_street
			define
				min-zoom : 13
				line-width : 12:1;13:1.5;15:6;18:15
				border-style : none
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			define
				min-zoom : 15
				max-zoom : 20
			
		elseif : *track
			define
				min-zoom : 12.5
				line-width : 12.5:0.3;13:0.5;15:1;18:1.5
			for : tracktype=grade1
				define
					line-width : 12.5:0.5;13:1;15:1.5;18:2
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			
		elseif : *footway
			define
				min-zoom : 13
				line-width : 13:0.5;15:1;18:1.5
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			
		elseif : *cycleway
			define
				min-zoom : 13
				line-width : 13:0.5;15:1;18:1.5
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
			
		elseif : *path
			define
				min-zoom : 13
				line-width : 13:0.5;15:1;18:1.5
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-style : dot
			draw : line
				
		else
			stop

	target : highway steps
		define
			min-zoom : 16
			shape : custom
			shape-def : -1,1, -1,-1, 1,-1, 1,1;Z
			shape-spacing : 2
			shape-size : 16:1;20:3
			shape-aspect : 3
			fill-color : #F98072
			line-style : none
		
	target : pier
		define
			line-color : #cd00cd white 20%
			line-width : 1:1;20:8
		draw : line

	target : line barrier
		define
			min-zoom : 13
			line-color : #cd00cd
			line-width : 1
		for:barrier=fence
			define
				min-zoom:16
				line-color:#777
		draw : line

	target : bridge foot
		define
			min-zoom : 13
			line-color : white
			line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:5;18:6
			border-style : solid
			border-color : #FEFEB2 black 20%
			border-width : 15%
		draw : line
		

	target: coastline
		define
			line-color : #cd00cd white 100%
			line-width : 2
		draw : line
		
	target : river
		define
			line-color : #cd00cd white 100%
			line-width : 7:1;12:2;14:5
		draw : line
		define
			min-zoom:13
			font-size:13:8;16:12
			text-color:#B5D0D0
			font-weight:normal
		
	target : stream
		define
			line-color : #cd00cd white 100%
			line-width : 13:1;15:2
		draw : line
		define
			min-zoom:13
			font-size:13:8;16:12
			text-color:#B5D0D0
			font-weight:normal
		

	target : canal
		define
			min-zoom : 12
			line-color : #cd00cd white 100%
			line-width : 12:1;17:8
		draw : line
		define
			min-zoom:13
			font-size:13:8;16:12
			text-color:#B5D0D0
			font-weight:normal
		

	target : drain
		define
			min-zoom : 13
			line-color : #cd00cd white 100%
			line-width : 1
		draw : line