User:Clementrouxosm/Maperitive/DesertMap

From OpenStreetMap Wiki
Jump to navigation Jump to search
Example of the DesertMap Rules (first version) near Yakutsk, osm data renderes with maperitive
Example of the DesertMap Rules near Yakutsk, osm data rendered with maperitive. Notice the incompete wood mapping...
//"DesertMap"
//Bienvenue à vous et merci d'avoir choisi cette carte. 
//Le but de celle-ci est de pouvoir représenter à large échelle des zones, qui sur des cartes du monde par exemple, semblent vides.
//Cette carte simplifiée est donc faite pour toute zone ayant une faible densité en population ou en routes, afin de mettre tout cela en valeur.
//Elle sert donc à mieux se représenter ces zones, (et vous vous apercevrez vite du manque de cartographie dans ce type de lieux en plus de tout ça)
//On peut bien sûr rajouter de nombreux éléments à cette carte : n'hésitez pas à faire des propositions ou la modifier et la reposter à bon vous semble.
//Bonne exploration !

//Welcome to the maperitive "DesertMap" !
//The aim of this map is to represent large areas, where the population and road density are low (so not only dry deserts of course); and this at all zoom levels.
//This map is a simplified map : don't hesitate suggesting or modifying the rules and reuploading them.
//Good Exploration (and sorry for the translation)

//(note : If you didn't notice, this is not an arcistic map.)





features
	water riverbank : relation[waterway=riverbank]
	points
		place city : place=city
		place town : place=town
		place village : place=village
		place hamlet : place=hamlet
		place suburb : place=suburb

	points, areas
		parking : amenity=parking
		railway station : railway=station
		park : leisure=park OR leisure=playground
		building : building
		fuel : amenity=fuel

	lines
		boundary country : boundary=administrative AND (admin_level=2 OR admin_level=4) AND NOT natural=coastline
		aeroway line runway : aeroway=runway
		aeroway line taxiway : aeroway=taxiway
		railway : railway=rail AND @isFalse(disused) AND NOT service=yard AND @isFalse(noexit)
		road major : @isOneOf("highway",primary,secondary,trunk,motorway)
		road minor : @isOneOf("highway",unclassified,residential,road,track,tertiary)
		road path :@isOneOf("highway",path,footway,bridleway,cycleway)
		water line : waterway=stream OR waterway=river

	areas
		water : natural=water OR natural=wetland OR waterway=riverbank OR waterway=stream OR landuse=reservoir OR landuse=basin
		aeroway area : aeroway
		farmland : landuse=farmland
		residential area : landuse=residential
		forest : landuse=forest OR natural=wood
		desert : natural = desert


properties
	map-background-color	: white
	map-background-opacity	: 1
	map-sea-color : royalblue
	font-weight : bold
	font-family : Arial
	text-max-width : 7
	text-halo-width : 35%
	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
	text : @any([[name:en]],name)

rules
// texts
	target : $featuretype(point)
		define
			text-halo-width : 25%
		if : place*
			define
				font-weight : bold
				text-align-horizontal : near
				text-align-vertical : far
				text-offset-horizontal : 5
				text-offset-vertical : -5
			if : *city
				define
					font-size : 8:14;11:17;14:18
					min-zoom : 4
					max-zoom : 16
			elseif : *town
				define
					font-size : 8:12;20:18
					min-zoom : 6
					max-zoom : 16
			elseif : *suburb
				define
					font-size : 13:11;20:20
					min-zoom : 10
					text-color : white black 50%
			elseif : *village
				define
					font-size : 7:10;12:11;20:20
					min-zoom : 7
			elseif : *hamlet
				define
					font-size : 12:10;14:11;20:16
					min-zoom : 9
		elseif : park
			define
				text-align-horizontal : near
				text-offset-horizontal : 7
				font-size : 14:8;20:10
				font-weight : normal
				min-zoom : 16
		else
			stop
		draw : text

//icons
	target : building
		define
			min-zoom : 12
			fill-color : orange
			shape-size: 12:2;16:5
			line-style : none
		draw : shape

	target : fuel
		define
			min-zoom : 6
			fill-color : deeppink
			shape-size : 8:4;12:10
			line-style : none
		draw : shape

// lines
	target : boundary country
		define
			line-color : magenta
			line-opacity : 0.5
		draw : line

	target : aeroway line*
		define
			min-zoom : 9
			line-color : #9D9595
		if : aeroway line runway
			define
				line-width : 9:1;10:1;11:2;13:6;15:20
		else
			define
				line-width : 9:1;11:1;13:3;15:10
		draw : line

	target : railway
		define
			min-zoom : 12
			line-color : #a1a1a1
			line-width : 2
		draw : line
		define
			min-zoom : 12
			line-style : dashlong
			line-color : white
			line-width : 1
			border-style : solid
			border-color : #a1a1a1
			border-width : 25%
		draw : line
		define
			min-zoom : 6
			max-zoom : 13
			line-style : solid
			border-style : none
			line-color : #a1a1a1
			line-width : 1
		draw : line


	target : road*
		if : road major
			define
				min-zoom : 7
				font-size : 10:11;18:14
				text-color : red
				font-weight : normal
				text-offset-vertical : -10
			draw : text

		if : road minor
			define
				text-color : red
				min-zoom : 11
				font-size : 15:11;18:14
				font-stretch : 0.85
				text-offset-vertical : 15:-8;18:-15
			draw : text

		for : highway=primary
			define
				min-zoom : 11.5
				text : ref
				text-halo-width : 0
				font-size : 9
				font-weight : bold
				shape : square
				shield-resize-mode : free
				shield-padding-left : 4
				shield-padding-right : 3
				shield-padding-top : 1
				shield-padding-bottom : -1
				fill-color : #fff973
				line-color : #ccc
				line-width : 1
			draw : shield

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

	target : road*
		define
			line-color: red
		if : road major
			define
				line-width : 12:2;13:3;14:4;18:15
		elseif : road minor
			define
				line-width : 10:1;13:2;14:3;15:4;18:12
		else
			define
				min-zoom : 9
				line-width : 11:1;14:2;15:3;16:4;18:8
				line-style : dashlong
		draw : line


	target : motorway
		define
			line-width : 7:1.5;13:3;15:10
			min-zoom : 7
			line-color : #ddd
			border-style : solid
			border-color : #999
			border-width : 20%
		for : tunnel=yes
			define
				border-style : dot
		draw : line

		define
			min-zoom : 7
			text : ref
			text-halo-width : 0
			text-color : #444
			font-size : 13:11;16:15
			font-weight : bold
			line-color : #ccc
			line-width : 1
		draw : text



	target : water line
		define
			min-zoom : 7
			line-color : royalblue
			line-width : 14:2;16:8;20:15
		for : waterway = river
			define
				line-width : 7:1;14:3;16:10;20:20
				min-zoom : 5
		draw : line

// areas

	target : $featuretype(area)
		define
			line-style : none
			line-width : 1
		if : water
			define
				fill-color : royalblue
		elseif : water riverbank
			define
				fill-color : royalblue
		elseif : desert
			define
				fill-color : magenta
		elseif : aeroway area
			define
				fill-color : #d1d0cd
		elseif : farmland
			define
				fill-color : yellow
		elseif : residential area
			define
				line-style : solid
				line-width : 1
				line-color : orange
				fill-color : orange
		elseif : hospital
			define
				fill-color : #e5c6c3
		elseif : park
			define
				fill-color : #0e1
		elseif : sport
			define
				fill-color : #d5e1dc
		elseif : cemetery
			define
				fill-color : #d1d0cd
		elseif : forest
			define
				min-zoom : 5
				fill-color : #0a2
		else
			stop
		draw : fill


		define
			font-weight : normal
			text-halo-width : 20%
			text-halo-opacity : 0.9
		if : water
			define
				min-zoom : 13
				font-size : 12:10;20:20
		elseif : hospital
			define
				min-zoom : 13
				font-size : 10
				text-color : #e5c6c3 black 70%
				text-align-horizontal : near
				text-offset-horizontal : 100%
		else
			stop
		draw : text