# This style-file used to create the VeloMaps is published under CCBYNCSA 3.0 by http://velomap.org . See here for license details: http://creativecommons.org/licenses/by-nc-sa/3.0/
# Please note: 
# a) any works that build upon it, have to give attribution to www.velomap.org
# b) any maps generated by using the style-file or large parts of it have to give attribution to www.velomap.org
# c) reusing this style-file or partly reusing it for commercial products/projects is not allowed without special permission by www.velomap.org  



route=road & network=e-road { apply { add int_ref='${ref'; add int_ref='${int_ref'} }


route=mtb	& network=icn				{ apply { set extremecarver=mr; add extremecarver6=mr; set extremecarver2=icn; add extremecarver4=route; set route_name_mtb1 = '${name}'; set mtblayer=icn; add ref = '${ref}' } }
route=mountainbike 	& network=icn		{ apply { set extremecarver=mr; add extremecarver6=mr; set extremecarver2=icn; add extremecarver4=route; set route_name_mtb1 = '${name}'; set mtblayer=icn; add ref = '${ref}' } }
route=mtb	& network=ncn				{ apply { set extremecarver=mr; add extremecarver6=mr; set extremecarver2=ncn; add extremecarver4=route; add route_name_mtb1 = '${name}'; set mtblayer=ncn; add ref = '${ref}' } }
route=mountainbike 	& network=ncn		{ apply { set extremecarver=mr; add extremecarver6=mr; set extremecarver2=ncn; add extremecarver4=route; add route_name_mtb1 = '${name}'; set mtblayer=ncn; add ref = '${ref}' } }
route=mtb	& network=rcn				{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=rcn; add extremecarver4=route; add route_name_mtb2 = '${name}'; add mtblayer=rcn; add ref = '${ref}' } }
route=mountainbike 	& network=rcn		{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=rcn; add extremecarver4=route; add route_name_mtb2 = '${name}'; add mtblayer=rcn; add ref = '${ref}' } }
route=mtb	& network=tcn				{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=tcn; add extremecarver4=route; add route_name_mtb2 = '${name}'; add mtblayer=tcn; add ref = '${ref}' } }
route=mountainbike 	& network=tcn		{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=tcn; add extremecarver4=route; add route_name_mtb2 = '${name}'; add mtblayer=tcn; add ref = '${ref}' } }
route=mtb	& network=lcn				{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=lcn; add extremecarver4=route; add route_name_mtb3 = '${name}'; add mtblayer=lcn; add ref = '${ref}' } }
route=mountainbike 	& network=lcn		{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=lcn; add extremecarver4=route; add route_name_mtb3 = '${name}'; add mtblayer=lcn; add ref = '${ref}' } }
route=mtb | route=mountainbike			{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=xcn; add extremecarver4=route; add route_name_mtb3 = '${name}'; add mtblayer=xcn; add ref = '${ref}' } }
route=bicycle & network=mtb 			{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=xcn; add extremecarver4=route; add route_name_mtb3 = '${name}'; add mtblayer=xcn; add ref = '${ref}' } }
route=bicycle & mtb=yes		 			{ apply { set extremecarver=mr; add extremecarver6=mr; add extremecarver2=xcn; add extremecarver4=route; add route_name_mtb3 = '${name}'; add mtblayer=xcn; add ref = '${ref}' } }

route=bicycle & ( route=icn | network=icn | icn=yes )		{ apply { add extremecarver5=bike; add icn=yes; set route=bicycle; set extremecarver6=icn; set route_name_bike1 = '${name}'; add ref = '${ref}' } }
route=bicycle & ( route=ncn | network=ncn | ncn=yes )		{ apply { add extremecarver5=bike; add ncn=yes; set route=bicycle; set extremecarver6=ncn; set route_name_bike1 = '${name}'; add ref = '${ref}' } } 
route=bicycle & ( route=rcn | network=rcn | rcn=yes )	 	{ apply { add extremecarver5=bike; add rcn=yes; set route=bicycle; set extremecarver6=rcn; add route_name_bike2 = '${name}'; add ref = '${ref}' } } 
route=bicycle & ( route=tcn | network=tcn | tcn=yes )		{ apply { add extremecarver5=bike; add rcn=yes; set route=bicycle; set extremecarver6=tcn; add route_name_bike2 = '${name}'; add ref = '${ref}' } }
route=bicycle & ( route=lcn | network=lcn | lcn=yes )		{ apply { add extremecarver5=bike; add lcn=yes; set route=bicycle; set extremecarver6=lcn; add route_name_bike3 = '${name}'; add ref = '${ref}' } }
route=bicycle & network!=icn & network!=ncn & network!=tcn & network!=rcn & network!=lcn & ncn!=yes & icn!=yes & rcn!=yes & lcn!=yes & tcn!=yes	{ apply { add extremecarver5=bike; add lcn=yes; set route=bicycle; add extremecarver6=xcn; add route_name_bike3 = '${name}'; add ref = '${ref}' } }

type=associatedStreet { apply { add addr:street='${name}' } }

# (type=boundary | type=multipolygon) & boundary=administrative & admin_level=1 { apply { set mkgmap:boundary1_name='$(mkgmap:boundary1_name)/${name:en}' | '$(mkgmap:boundary1_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_1=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=administrative & admin_level=2 { apply { set mkgmap:boundary2_name='$(mkgmap:boundary2_name)/${name:en}' | '$(mkgmap:boundary2_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_2=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=administrative & admin_level=3 { apply { set mkgmap:boundary3_name='$(mkgmap:boundary3_name)/${name:en}' | '$(mkgmap:boundary3_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_3=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=administrative & admin_level=4 { apply { set mkgmap:boundary4_name='$(mkgmap:boundary3_name)/${name:en}' | '$(mkgmap:boundary4_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_4=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=administrative & admin_level=5 { apply { set mkgmap:boundary5_name='$(mkgmap:boundary5_name)/${name:en}' | '$(mkgmap:boundary5_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_5=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=administrative & admin_level=6 { apply { set mkgmap:boundary6_name='$(mkgmap:boundary6_name)/${name:en}' | '$(mkgmap:boundary6_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_6=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=administrative & admin_level=8 { apply { set mkgmap:boundary8_name='$(mkgmap:boundary8_name)/${name:en}' | '$(mkgmap:boundary8_name)/${name}' | '${name:en}' | '${name}' | ; set boundary=administrative; set admin_level_8=yes ; set admin_level_copy=yes }}
(type=boundary | type=multipolygon) & boundary=national_park { apply { set mkgmap:boundary99_name='$(mkgmap:boundary99_name)/${name:en}' | '$(mkgmap:boundary99_name)/${name}' | '${name:en}' | '${name}'; set boundary99=yes }}

( route=ferry | line=ferry ) & name=*	{ apply { set name1 = '${name} ${route} ${network} ferry' | '${name} ${route} ferry' | '${route} ${network} ferry' | '${name} ${network} ferry' | '${name} ferry' | '${network} ferry' | '${route} ferry' | 'ferry'; add fromrelation=yes; add route1=ferry } }
( route=ferry | line=ferry ) & name!=* 	{ apply { add fromrelation=yes; add route=ferry } }

route=shuttle_train & name=*	{ apply { set name1 = '${name} s_train' | 'shuttle_train'; add fromrelation=yes; add route1=shuttle_train } }

(route=subway|route=train|route=tram) & (ref=* | name=*)
{  add ref='${name}'; 
  # if ref is missing, use name
  # Append the ref of the route relation to the route_ref attribute of
  # the member nodes recursively (even to members of subrelations).
  # Stops can be grouped within subrelations comprising the vehicle
  # stop node and the passenger wait node.
  
  apply { # node role ~ '(start_|end_)stop'
    set route_ref='$(route_ref),${ref}' | '${ref}';

    # In route relations, stops may be defined as relations that group
    # the passenger wait area and the vehicle stop area.  If such
    # subrelations exist, copy the ref to them too.
    set mkgmap:ref='${ref}';

    apply role=passengers {
      set route_ref='$(route_ref),${mkgmap:ref}' | '${mkgmap:ref}';
    }

    delete mkgmap:ref;
  }
  # We could want to copy the route relation name to unnamed route=ferry ways.
  apply { add railwayname='${name}' }
}

type=route
& ( route=road & network!=e-road|route=ski)
{
  add ref='${name}'; # if ref is missing, use name
  set ref='${route} ${network} ${ref}' | '${route} ${ref}' | '${route} ${network}' | '${route}';
  apply { set mkgmap:route='$(mkgmap:route),${ref}' | '${ref}' }
}


route=foot	 & route!=mtb & route!=bicycle & network!=icn & network!=ncn & network!=tcn & network!=rcn & network!=lcn	{ apply { add route=foot; add route_name_walking = '${name}'; add ref = '${ref}'	} } 
route=walking & route!=mtb & route!=bicycle & network!=icn & network!=ncn & network!=tcn & network!=rcn & network!=lcn	{ apply { add route=foot; add route_name_walking = '${name}'; add ref = '${ref}'	} } 
route=hiking & route!=mtb & route!=bicycle & network!=icn & network!=ncn & network!=tcn & network!=rcn & network!=lcn	{ apply { add route=hiking; add route_name_hiking = '${name}'; add ref = '${ref}'	} }


# route=bicycle   & network!=icn & network!=ncn & network!=tcn & network!=rcn & network!=lcn						{ apply { add extremecarver5=bike; set extremecarver3=xcn; add extremecarver4=route; add cyclelayer=xcn; add route_name = '${name}'; add ref = '${ref}' } }
# route=bicycle & ( route=lcn | network=lcn | lcn=yes )	& network!=icn & network!=ncn & network!=tcn & network!=rcn	{ apply { add extremecarver5=bike; set extremecarver3=lcn; add extremecarver4=route; add cyclelayer=lcn; add route_name = '${name}'; add ref = '${ref}' } }
# route=bicycle & ( route=tcn | network=tcn | tcn=yes )	& network!=icn & network!=ncn & network!=rcn				{ apply { add extremecarver5=bike; set extremecarver3=tcn; add extremecarver4=route; set cyclelayer=tcn; add route_name = '${name}'; add ref = '${ref}' } }
route=bicycle & ( route=rcn | network=rcn | rcn=yes )	& network!=icn & network!=ncn								{ apply { add extremecarver5=bike; set extremecarver3=rcn; add extremecarver4=route; add cyclelayer=rcn; add route_name = '${name}'; add ref = '${ref}' } }
route=bicycle & ( route=ncn | network=ncn | ncn=yes )	& network!=icn												{ apply { add extremecarver5=bike; set extremecarver3=ncn; add extremecarver4=route; set cyclelayer=ncn; set route_name = '${name}'; add ref = '${ref}' } } 
route=bicycle & ( route=icn | network=icn | icn=yes )																{ apply { add extremecarver5=bike; set extremecarver3=icn; add extremecarver4=route; set cyclelayer=icn; set route_name = '${name}'; add ref = '${ref}' } }
