OSM on Paper/Printing via Maperitive, Easy Poster Printer and Microsoft ICE/Ashgabat city Maperitive style file

From OpenStreetMap Wiki
Jump to: navigation, search

Download

Download: file as of 2016-06-06

Source

// 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)

// Modified by Allan Mustard to add special handling of embassies, consulates, hotels, gas stations, and hospitals 
// in the city of Ashgabat, Turkmenistan
// We define shops more broadly to make grocery shopping in Ashgabat easier
// Street names rendered are the Turkmen language variants text : [[name:tk]]

features
	points, areas
		embassy : amenity=embassy
		consulate : amenity=consulate
		fuel : amenity=fuel
		traffic : type=enforcement
		monument : historic=monument
		bus station : amenity=bus_station
		ashgabat airport : aeroway=terminal AND name="CIP Terminal and Lounge"
		shopping : shop=mall OR shop=supermarket OR amenity=marketplace 
		hippodrome : sport=equestrian
		hospital : amenity=hospital
		clinic : amenity=clinic
		fire station : amenity=fire_station
		police station : amenity=police
		church : amenity=place_of_worship AND religion=christian
		mosque : amenity=place_of_worship AND religion=muslim
		bank : amenity=bank
		school : amenity=school
		bus stop : highway=bus_stop
		railway station : railway=station
		mini roundabout : highway=mini_roundabout
		gate : barrier=gate
		hotel : tourism=hotel or building=hotel
		museum : tourism=museum
		amenity parking : amenity=parking
		amenity pub : amenity=pub
		amenity fast_food : amenity=fast_food
		aerodrome : aeroway=aerodrome
		housenumber : [addr:housenumber]
		restaurant : amenity=restaurant
		cafe : amenity=cafe
	// These are not shown on Mapnik
		puffin : crossing_ref=puffin
		memorial : historic=memorial areas
		constructsite : landuse=construction 
		building : building=yes OR building=hospital OR building=commercial OR building=apartments OR building=school OR building=retail 
        // exclude building=residential as we don't need to draw all private houses--that clutters the map
		water : natural=water OR waterway=riverbank OR landuse=reservoir OR landuse=basin or waterway=dock
		grass : landuse=grass
		allotments : landuse=allotments
		academic : node[@isOneOf(amenity, university, college, school)] area[@isOneOf(amenity, university, college, school)]
		playground : leisure=playground
		track : leisure=track
		graveyard : amenity=grave_yard OR landuse=cemetery
		military : landuse=military OR military=barracks
		park : leisure=park
		leisure pitch : leisure=pitch
		golfcourse : leisure=golf_course
		leisure stadium : leisure=stadium
		landuse retail : landuse=retail
		landuse industrial : landuse=industrial
		commercial area : landuse=commercial
		residential area : landuse=residential
		aeroway apron : aeroway=apron
		aeroway terminal : aeroway=terminal
		aeroway taxiway : aeroway=taxiway
		highway pedestrian : highway=pedestrian

	lines
		oneway : oneway=yes OR oneway=true OR oneway=-1
		coastline : natural=coastline
		river : waterway=river
		stream : waterway=stream
		canal : waterway=canal
		drain : waterway=drain
		dock : waterway=dock
		railway rail : railway=rail
		railway lightrail : railway=light_rail
		platform : railway=platform OR public_transport=platform
		line barrier : barrier=wall OR barrier=fence
// added links missing from some highway definitions
		highway motorway : highway=motorway OR (highway=construction AND construction=motorway)
		highway motorway link : highway=motorway_link OR (highway=construction AND construction=motorway_link) 
		highway trunk : highway=trunk OR (highway=construction AND construction=trunk) OR highway=trunk_link OR (highway=construction AND construction=trunk_link)
		highway primary link : highway=primary_link OR (highway=construction AND construction=primary_link)
		highway primary : highway=primary OR (highway=construction AND construction=primary)
		highway secondary : highway=secondary OR (highway=construction AND construction=secondary) OR highway=secondary_link
		highway tertiary : highway=tertiary OR (highway=construction AND construction=tertiary) OR highway=tertiary_link
		highway unclassified : highway=unclassified OR (highway=construction AND construction=unclassified)
		highway residential : highway=residential OR (highway=construction AND construction=residential)
		highway living_street : highway=living_street OR (highway=construction AND construction=living_street)
		highway construction : highway=construction
		highway service : highway=service
		highway pedestrian : highway=pedestrian
		highway track : highway=track
		highway footway : highway=footway
		highway cycleway : highway=cycleway
		highway path : highway=path
		highway access private : access=private AND highway
		highway access destination : access=destination AND highway
		highway steps : highway=steps
		bridge foot : bridge=yes AND (foot=yes OR highway=footway)
		power_line : power=line OR power=minor_line
		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

		boundary country : boundary=administrative AND (admin_level=2 OR admin_level=4) AND NOT natural=coastline
		boundary province : boundary=administrative AND admin_level=6
		boundary municipal : boundary=administrative AND admin_level=8

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

		gps tracks : gpstrack[]
		gps routes : gpsroute[]

// Routes
//		route ncn : relation[type=route AND route=bicycle AND network=ncn]
		route byway : relation[type=route AND route=bicycle AND network="National Byway"]
		route foot : relation[type=route AND route=foot]

	points
		place city : place=city
		place town : place=town
		place village : place=village
		place hamlet : place=hamlet
		place locality: place=locality
		place isolated_dwelling : place=isolated_dwelling
		place suburb : place=suburb
		diy : shop=doityourself
		supermarket : shop=supermarket
		convenience : shop=convenience
		
		pharmacy : amenity=pharmacy
		peak : natural=peak
		powertower : power=tower OR power=pole
		info : information=guidepost
		bollard : barrier=bollard
		lift_gate : barrier=lift_gate
		aerialway station : aerialway=station
		motorway_junction : highway=motorway_junction

		gps waypoints : gpswaypoint[]
		gps trackpoints: gpstrack[].gpspoint[]
		gps routepoints: gpsroute[].gpspoint[]

properties
// set defaults
	map-background-color	: #F1EEE8
	map-background-opacity	: 1
	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
// following rules define GPX data uploaded from a GPS
	target: gps tracks
		define
			line-color : red
			line-opacity : 0.75
			min-zoom : 5
			line-width : 5
		draw : line

	target: gps routes
		define
			line-color : blue
			line-opacity : 0.75
			line-style : dash
			min-zoom : 5
			line-width : 5
		draw : line

	target : gps waypoints
		define
			shape : circle
			shape-size : 8
			line-color : green
			fill-opacity : 0
		draw : shape

	target : gps trackpoints
		define
			min-zoom : 17
			shape : square
			shape-size : 10
			line-color : green
			line-width : 1
			fill-opacity : 0
		draw : shape

	target : gps routepoints
		define
			min-zoom : 12
			shape : diamond
			shape-size : 10
			line-color : green
			line-width : 1
			fill-opacity : 0
		draw : shape

// rules for drawing major point-type features
		
	target : $featuretype(point)
		define
// next line should force text to default to English name with fallback to whatever name is in the main label, Turkmen, and finally Russian
			text : @any([[name:en]], name, [[name:tk]], [[name:ru]])

// set zoom levels for municipalities
		if : place*
			define
				font-weight : bold
				text-max-width : 1000
				text-align-horizontal : near
				font-size : 6:12;14:20
				
			if : *city
				define
					font-size : 6:12;14:20
					min-zoom : 6
					max-zoom : 14
					placement-value : 1000
			elseif : *town
				define
					font-size : 9:12;12:14;20:20
					min-zoom : 9
					placement-value : 20
			elseif : *village
				define
					font-size : 12:12;20:20
					min-zoom : 12
					placement-value : 1
			elseif : *hamlet
				define
					font-size : 14:12;20:16
					min-zoom : 14
					placement-value : 0.1
			elseif : *locality
				define
					font-size : 14:12;20:16
					min-zoom : 14
					placement-value : 0.1
			elseif : *isolated_dwelling
				define
					font-size : 15:10;20:14
					min-zoom : 15	
					placement-value : 0.1
			elseif : *suburb
				define
					font-size : 13:12;20:20
					min-zoom : 13
					text-color : white black 50%
					placement-value : 10

		if : aerialway station
			define
				min-zoom:12
				shape:square
				shape-size:12:3;16:8
				fill-color:#7981B0
				line-style:none
				text-offset-vertical:120%
				text-color:#8888FF
			draw:shape
			draw:text
// monuments are valuable navigational landmarks
	target : monument
		define
			min-zoom: 16
			text: name
			font-size : 10
			text-offset-vertical : 150%
			icon-image : icons/SJJB/png/tourist_monument.glow.32.png
		draw : text
		draw : icon

// Rules for drawing house numbers where they are available. Bump house number vertically so it appears above the name of the building
// if there is one.  
	target : housenumber
		define
			min-zoom : 16
			text : [[addr:housenumber]]
			text-halo-width : 0
			font-size : 10
			text-offset-vertical:-130%
			placement-value : 0.01
		draw : text

// rules for drawing a playground
	target : playground
		define
			fill-color : #CCFEF0
			line-style : none
		draw : fill
		define
			line-color : #ADCCB5
			line-width : 1
		draw : line
		define
			min-zoom : 17
			placement-value : 0.05
		draw : text
// define color fill rules for major area-type features
	target : $featuretype(area)
		define
			line-style : none
			line-width : 1

// following code should force default to English name with fallback to whatever name is in the main label,
// then Turkmen, and then Russian as last resort.

			text : @any([[name:en]], name, [[name:tk]], [[name:ru]])
// We will deal with buildings separately below.
// Suppress text for some types of areas by converting text to null string 

		if : water
			define
				fill-color : #B5D0D0
		elseif : bus station
			define
				fill-color : #F5A9F2
				text : ""

		elseif : academic
			define
				fill-color : #F0F0D8
				line-color : #E5D2CC
				line-style : solid
				text : ""
		elseif : residential area
			define
 				fill-color : #FFFAFA
				fill-opacity : 0.5
		elseif : building 
			define
				fill-color : #BCA9A9
				text : ""
		elseif : grass
			define
				fill-color : #CFECA8
		elseif : amenity parking 
			define
				fill-color : #F6EEB7
  				text : ""
		elseif : park
			define
				fill-color : #C0F6B0
				text : ""
		elseif : leisure garden
			define
				fill-color : #CFECA8
		elseif : graveyard
			define
				fill-color : #A9CAAE
				min-zoom : 14
		elseif : leisure pitch
			define
				fill-color : #89D2AE
		elseif : leisure stadium
			define
				fill-color : #33CC99
		elseif : track
			define
				fill-color : #74DCBA
		elseif : golfcourse
			define
				fill-color : #CFECA8
		elseif : landuse retail
			define
				fill-color : #F0D9D9
				line-color : #F4A19E
			draw : line
		elseif : landuse industrial
			define
				fill-color : #DFD1D6
		elseif : commercial area
			define
				fill-color : #EFC8C8
		elseif : military
			define
				fill-color : #FE9898
		elseif : aeroway*
			define
				fill-color : #E9D1FE
		elseif : aerodrome
			define
				fill-color : #e9e8e3
				line-style : solid
				line-color : #b3b3b0 black 10%
		elseif : *pedestrian
			for : area
				define
					min-zoom : 14
					fill-color : #EDEDED
					line-color : #B1B1B1 black 20%
					line-style : solid
		else
			stop
		draw : fill

// special handling for the Jack Nicklaus Design golf course under construction 		
		if : golfcourse
			define
				icon-image :  icons/SJJB/png/sport_golf.glow.32.png
				icon-width : 20
			draw : icon
			define
				min-zoom : 14
				line-style : solid
				line-width : 1
				line-color : #666
				font-size : 11
				text-offset-vertical: -450%
			draw : text

		if : graveyard
			define
				min-zoom : 15
				font-size : 10
				text-offset-vertical: 150%
				text : @any([[name:en]], name, [[name:tk]], [[name:ru]])
			draw : text

		if : leisure* 
			if : *stadium
				define
					min-zoom : 14
					font-size : 10
					text : @any([[name:en]], name, [[name:tk]], [[name:ru]])		
					text-offset-vertical:150%
			elseif : *park
				define
					min-zoom : 14
					font-size : 10
					text : @any([[name:en]], name, [[name:tk]], [[name:ru]])
						
			elseif : *swimming_pool
				define
					icon-image : icons/SJJB/png/sport_swimming_indoor.glow.32.png
					min-zoom : 15
					line-style : solid
					line-width : 1
					line-color : #666
					font-size : 10
					text-offset-vertical: 150%
			else
				define
					min-zoom : 15
					line-style : solid
					line-width : 1
					line-color : #666
					font-size : 10
					text-offset-vertical: 150%
			draw : icon
			draw : text
		 
// Define the building labels here.
// We will handle embassies, consulates, hospitals, railway stations, stadia, restaurants and shops later with separate rules 
// so if one of those, STOP for now
	target : building
		for : amenity=hospital OR amenity=embassy OR amenity=consulate OR leisure=stadium OR shopping OR restaurant OR amenity=fuel OR hotel OR railway=station
			stop

// Push building name (if any) down so it is printed below house number and icon, if any

// By default describe buildings with the English name in the OSM database "text : [[name:en]]" if one exists, but
// otherwise use the default name.  Don't write the building name if it is merely the house number; we have that covered elsewhere.

		else 
			define
				text : @any([[name:en]], name, [[name:tk]], [[name:ru]])
				min-zoom : 16
				text-offset-vertical: 150%
				line-style : solid
				line-width : 1
				line-color : #666
				font-size : 10
			draw : line
			if : NOT @isMatch([[addr:housenumber]],text)
				draw : text

	target : amenity*
// embassies and consulates are defined as amenities, but we handle their formatting with separate rules
// and we don't need to label most parking lots
		if : *embassy 
			stop
		elseif : *consulate
			stop
		elseif : *parking
			stop
		else
			define
				min-zoom : 16
				text-color : #856951
				text-offset-vertical : 200%
				font-size : 10
				text : @any([[name:en]], name, [[name:tk]], [[name:ru]])
			draw : text
		
			define
				min-zoom : 16
				icon-width : 16		
		
			if : *pub
				define
					icon-image : icons/SJJB/png/food_pub.p.32.png
			elseif : *fast_food
				define
					icon-image : icons/SJJB/png/food_fastfood2.p.32.png
			else
				stop
		draw : icon


// Special handling for embassies and consulates. Use the Simple English name so it fits on the map better where embassies are clustered
// together in the city.  
	target : embassy 
		define
			text : [[name:simple]]
			min-zoom : 14
			text-color : #734a08
			text-offset-vertical : 100%
			font-size : 10
		draw : text
		define
			icon-image : icons/SJJB/png/poi_embassy.p.32.png
			min-zoom : 14
			icon-width : 16
		draw : icon

	target : consulate
		define
			text : [[name:simple]]
			min-zoom : 14
			text-color : #734a08
			text-offset-vertical : 200%
			font-size : 10
		draw : text
		define
			icon-image : icons/SJJB/png/poi_embassy.p.32.png
			min-zoom : 14
			icon-width : 16
		draw : icon

	target : amenity parking
		define
			icon-image : icons/SJJB/png/transport_parking.glow.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon
		define
			text : name
			min-zoom : 17
			text-color : #734a08
			text-offset-vertical : 200%
			font-size : 10
		draw : text
// Force use of the default name for hotels.
	target : hotel
		define
			text : name
			font-size : 10
			min-zoom : 15
			text-offset-vertical:150%
			icon-image : icons/SJJB/png/accommodation_hotel2.glow.32.png
		draw : text
		draw : icon
		
// Make gas stations jump out because there are so few of them in Turkmenistan. Don't need names as there is only one company
// so just draw the icon.
	target : fuel
		define
			icon-image : icons/SJJB/png/transport_fuel.glow.32.png
			min-zoom : 14
			icon-width : 22
			text : ""
		draw : icon
// Draw the airport
	target : aeroway runway
		define
			min-zoom : 11
			line-color : #BBBBCC
			line-width : 11:2;15:20
		draw : line

	target : aeroway taxiway
		define
			min-zoom : 11
			line-color : #BBBBCC
			line-width : 11:1;15:6
		draw : line

	target : ashgabat airport
		define
			min-zoom : 11
			icon-image : icons/SJJB/png/transport_airport.glow.32.png
			icon-width : 14
			font-size : 12
			text-color : #7981B0
			text-offset-vertical : -250%			
			text : "Ashgabat" "\n" "Airport" "\n" "Terminals"
		draw : icon
		draw : text			

// Draw jurisdictional boundary lines
	target : boundary*
		define
			line-color : #9E1A99
			line-opacity : 0.5
		if : boundary country
			define
				line-width : 6:1;9:3;10:6
		elseif : boundary province
			define
				min-zoom : 4
				line-width : 4:1;11:3
				line-style : dash
		elseif : boundary municipal
			define
				min-zoom : 12
				line-width : 12:1;14:2
				line-style : dash
		draw : line
// Draw miscellaneous landmarks
	target : powertower
		define
			min-zoom: 14
			shape : custom
			shape-def : m:-1,1;l:1,1,1,-1,-1,-1,-1,1,1,-1;m:-1,-1;l:1,1
			shape-size : 14:2;20:9
			line-width : 1
		draw : shape

	target : power_line
		define
			min-zoom: 16
			line-width: 1
			line-color : #5c5c5c white 50%
		for : power=line
			define
				line-color : #5c5c5c
				min-zoom : 14
				line-width: 1
		draw : line

	target:aerialway *
		define
			min-zoom:12
			line-width:1
			line-style:solid
			line-color:#999
		draw:line
		draw:text
	target:aerialway closed
		define
			min-zoom:12
			shape:circle
			shape-size:1
			shape-spacing:20
		draw:shape
	target:aerialway open
		define
			min-zoom:12
			shape:custom
			shape-def:l:0,1,0,-1
			shape-spacing:5
			shape-size:3
			line-width:1
		draw:shape
// Draw the railroad station and rail lines
	target : platform
		define
			min-zoom : 13
			line-color : gray
			line-width : 3
		draw : line
	target : railway rail
		define
			min-zoom : 13
			line-style : dashlong
			line-color : white
			line-width : 2
			border-style : solid
			border-color : gray
			border-width : 25%
		draw : line
		define
			min-zoom : 6
			max-zoom : 13
			line-style : none
			line-color : white black 30%
			line-width : 6:1;8:1;12:1.5
		draw : line

	target : railway*
		if : *station
			define
				min-zoom : 11
				font-size : 12
				text-color : #7981B0
				text-offset-vertical : -300%
				icon-image : icons/SJJB/png/transport_train_station.p.32.png
			draw : text		
			draw : icon
		else
			define
				min-zoom : 13
				line-color : gray
				line-width : 2
			draw : line
			define
				min-zoom : 15
				text-align-horizontal : center
				text-align-vertical : center
			draw:text
// Rules for drawing streets and roads.  We use the Maperitive defaults since they are well designed.
	target : highway access*
		define
			min-zoom : 13
			line-width : 13:1;15:2;18:4
			line-style : dash
			line-color : #F7D4D4
		for : access=destination
			define
				line-color : lightblue white 50%
		draw : line

	target : highway construction
		define
			min-zoom : 13
			line-width : 13:2;15:4;18:10
			line-style : dot
			line-color : yellow
		for : construction=tertiary OR construction=secondary OR construction=primary
			define
				line-color : white
		draw : line

	target : motorway_junction
		define
			font-size : 12 
			min-zoom : 13
			text-color : #849BBD
			text-halo-width : 25%
			text-offset-vertical : 150%
		draw: text

	target : highway*
		define
			font-size : 15:12;18:16
			font-weight : bold
			text : [[name:tk]]

		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
			draw : shape

		define
			line-style : solid
			line-join : round
			line-start-cap : round
			line-end-cap : round

		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
				line-color : #849BBD
				border-style : solid
				border-color : #849BBD black 20%
				border-width : 15%
			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 : 14
				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
			draw : shield
		elseif : *trunk*
			define
				min-zoom : 12
				line-color : #96D296
				line-width : 11:1;13:2;15:10;18:12
				border-style : solid
				border-color : #96D296 black 20%
				border-width : 15%
			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-color : #ECA2A3
				line-width : 11:2;12:2;15:10;18:12
				border-style : solid
				border-color : #ECA2A3 black 20%
				border-width : 15%
			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
			draw : text
		elseif : *secondary
			define
				min-zoom : 12
				line-color : #FDD6A4
				line-width : 10:1;11:2;13:2;15:10;18:12
				border-style : solid
				border-color : #CAA36F
				border-width : 5%
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
					border-width : 8%
			draw : line
			define
				min-zoom : 8.5
				max-zoom : 12
				border-style : none
			draw : line
			define
				min-zoom : 13
				max-zoom : 20
			draw : text
		elseif : *tertiary
			define
				min-zoom : 13
				line-color : #FEFEB2
				line-width : 10:1;13:2;15:10;18:12
				border-style : solid
				border-color : #FEFEB2 black 20%
				border-width : 15%
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
			draw : line
			define
				min-zoom : 10
				max-zoom : 13
				line-color : white black 25%
				border-style : none
			draw : line
			define
				min-zoom : 15
				max-zoom : 20
			draw : text
		elseif : *service
			define
				min-zoom : 13
				line-color : white
				line-width : 12:0.5;13:1;15:3;18:5
				border-style : solid
				border-color : #FEFEB2 black 20%
				border-width : 15%
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
			draw : line
			draw : text
		elseif : *pedestrian
			for : not area
				define
					min-zoom : 13
					line-color : #EDEDED
					line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:5;18:6
					border-style : solid
					border-color : #B1B1B1 black 20%
					border-width : 15%
				for : tunnel=yes
					define
						border-style : dot
				for : bridge=yes
					define
						border-color : #000
				draw : line
				draw : text

		elseif : $regex("(.*residential)|(.*unclassified)")
			define
				min-zoom : 13
				line-color : white
				line-width : 12:1;13:1.5;15:6;18:15
				border-style : solid
				border-color : white black 25%
				border-width : 15%
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
			draw : line
			define
				min-zoom : 10
				max-zoom : 13
				border-style : none
				line-color : white black 25%
			draw : line
			define
				min-zoom : 15
				max-zoom : 20
			draw : text
		elseif : *living_street
			define
				min-zoom : 13
				line-color : white black 25%
				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-color : #000
			draw : line
			define
				min-zoom : 15
				max-zoom : 20
			draw : text
		elseif : *track
			define
				min-zoom : 12.5
				line-color : #9D7517
				line-width : 12.5:0.3;13:0.5;15:1;18:1.5
				line-style : dash
				border-style : solid
				border-color : white
				border-width : 100%
				border-opacity : 0.3
			for : tracktype=grade1
				define
					line-style : solid
					line-width : 12.5:0.5;13:1;15:1.5;18:2
			for : tracktype=grade2
				define
					line-style: dashlong
			for : tracktype=grade3
				define
					line-style: dash
			for : tracktype=grade4
				define
					line-style: dashdot
			for : tracktype=grade5
				define
					line-style: dashdotdot
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
			draw : line
			draw : text
		elseif : *footway
			define
				min-zoom : 13
				line-color : #F68474
				line-width : 13:0.5;15:1;18:1.5
				line-style : dot
				border-style : solid
				border-color : white
				border-width : 100%
				border-opacity : 0.3
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
			draw : line
			draw : text
		elseif : *cycleway
			define
				min-zoom : 13
				line-color : blue
				line-width : 13:0.5;15:1;18:1.5
				line-style : dot
				border-style : solid
				border-color : white
				border-width : 100%
				border-opacity : 0.3
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
					border-opacity : 1
			draw : line
			draw : text
		elseif : *path
			define
				min-zoom : 13
				line-color : #6E7C6D
				line-width : 13:0.5;15:1;18:1.5
				line-style : dash
				border-style : solid
				border-color : white
				border-width : 100%
				border-opacity : 0.3
			for : tunnel=yes
				define
					border-style : dot
			for : bridge=yes
				define
					border-color : #000
			draw : line
			draw : text
		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
		draw : shape

	target : line barrier
		define
			min-zoom : 13
			line-color : black
			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
		draw : text

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

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

	target : drain
		define
			min-zoom : 13
			line-color : #B5D0D0
			line-width : 1
		draw : line

	target : bus station
		define
			icon-image : icons/SJJB/png/transport_bus_station.p.32.png
			min-zoom : 13
			font-size : 12
			text-color : #7981B0
			text-offset-vertical : -150%			
			text : @any([[name:en]], name, [[name:tk]], [[name:ru]])
		draw : icon
		draw : text		

	target: bus stop
		define
			icon-image : icons/SJJB/png/transport_bus_stop.p.32.png
			min-zoom : 15
			icon-width : 15:10;18:16
		draw : icon


	target: fire station
		define
			icon-image : icons/SJJB/png/amenity_firestation.p.32.png
			min-zoom : 15
			icon-width : 15
		draw : icon

// make hospitals jump out so they are easily found in an emergency
	target: hospital
		define
			icon-image : icons/SJJB/png/health_hospital.p.32.png
			min-zoom : 12
			icon-width : 12
		draw : icon
		define
			min-zoom : 14
			font-size : 10			
			text-offset-vertical : 150%
			text-color : #DA0092
		draw : text
	target: police station
		define
			icon-image : icons/SJJB/png/amenity_police.p.32.png
			min-zoom : 15
			icon-width : 15
		draw : icon
	target: cafe
		define
			icon-image : icons/SJJB/png/food_cafe.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon
		define
			text-offset-vertical : 150%
		draw : text
	target: shopping
		define
			icon-image : icons/SJJB/png/shopping_supermarket.p.32.png
			min-zoom : 15
			icon-width : 15
		draw : icon
		define
			min-zoom : 16
			font-size : 10
			text-offset-vertical : 150%
		draw : text
	target: diy
		define
			icon-image : icons/SJJB/png/shopping_diy.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon
	target: convenience
		define
			icon-image : icons/SJJB/png/shopping_convenience.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon

	target: mini roundabout
		define
			icon-image : icons/SJJB/png/transport_roundabout_anticlockwise.p.32.png
			min-zoom : 16
			icon-width : 9
		draw : icon
	target: church
		define
			icon-image : icons/SJJB/png/place_of_worship_christian3.p.32.png
			min-zoom : 16
			icon-width : 16
		define
			text-offset-vertical : 250%
		draw : text
		draw : icon
	target : mosque
		define
			icon-image : icons/SJJB/png/place_of_worship_islamic3.glow.32.png
			min-zoom : 16
			icon-width : 16
		define
			text-offset-vertical : 250%
		draw : text
		draw : icon
	target: bank
		define
			min-zoom : 17
			text-color : #000000
			text-offset-vertical : 150%
		draw : text
		define
			icon-image : icons/SJJB/png/money_bank2.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon
	target: restaurant
		define
			min-zoom : 17
			text-color : #734a08
			text-offset-vertical : -150%
			font-size : 10
		draw : text
		define
			icon-image : icons/SJJB/png/food_restaurant.p.32.png
			min-zoom : 16
			icon-width : 12
		draw : icon
	target: pharmacy
		define
			icon-image : icons/SJJB/png/health_pharmacy.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon
	target: memorial
		define
			icon-image : icons/SJJB/png/tourist_memorial.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon
	target: academic
		define
			icon-image : icons/SJJB/png/education_school.p.32.png
			icon-width : 16
			text : name
		if : text="Ashgabat International School"
			define
				font-weight : bold
				font-size : 12
				min-zoom : 13
				text-offset-vertical : 350%
				text-max-width : 25
		else
			define
				font-weight : bold
				font-size : 10
				min-zoom : 15
				text-offset-vertical : 150%
		draw : text
		draw : icon

	target : puffin
		define
			icon-image : icons/SJJB/png/transport_traffic_lights.p.32.png
			min-zoom : 16
			icon-width : 16
		draw : icon

// highlight construction sites
	target : constructsite 
		define
			min-zoom : 10
			fill-color : #F7BE81
			line-style : none
		draw : fill
		define
			min-zoom : 15
			text : "construction" "\n" "site"
			text-halo-width : 0%			
			text-color : #000000
			font-style : normal
			font-weight : normal
			font-size : 12
		draw : text

	target : traffic
		define
			icon-image : icons/SJJB/png/enforcement_radar_.n.32.png
			min-zoom : 14
			icon-width : 16
		draw : icon

	target : gate
		define
			icon-image : icons/SJJB/png/barrier_gate.p.32.png
			min-zoom : 16
			icon-width : 7
		draw : icon


	target : tourism* 
		define
			min-zoom : 17
			text-color : #2B80FE
			text-offset-vertical : 150%
		draw : text

// label the hotels so they are easily found

		if : *hotel
			define
				text : [[name]]
				min-zoom : 14
				text-color : #734a08
				text-offset-vertical : 150%
				font-size : 10
			draw : text

			define
				icon-image : icons/SJJB/png/accommodation_hotel2.p.32.png
				min-zoom : 14
				icon-width : 14
			draw : icon		

		elseif : *museum
			define
				icon-image : icons/SJJB/png/tourist_museum.p.32.png
				min-zoom : 16
				icon-width : 16
		else
			stop
		draw : icon



	target: contour*
		define
			line-color : #7f3300
			line-opacity : 0.35
			curved : true
		if : *major
			define
				map.rendering.contour.label : true
				min-zoom : 9
				line-width : 11:0.1;11.9:1;12:2
				font-size : 12
				font-style : italic
				font-weight : normal
				text-halo-width : 35%
				text-halo-opacity : 1
				text-halo-color : #F1EEE8
		else
			define
				min-zoom : 12
				line-width : 1
		draw : contour

	target: coastline
		define
			line-color : #B5D0D0
			line-width : 2
		draw : line