diff --git a/project.mml b/project.mml index ed4a6cf355..c59d7b7571 100644 --- a/project.mml +++ b/project.mml @@ -491,7 +491,7 @@ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT *\n FROM (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text\n END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'\n ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway', 380),\n ('highway_trunk', 370),\n ('highway_primary', 360),\n ('highway_secondary', 350),\n ('highway_tertiary', 340),\n ('highway_residential', 330),\n ('highway_unclassified', 330),\n ('highway_road', 330),\n ('highway_living_street', 320),\n ('highway_pedestrian', 310),\n ('highway_raceway', 300),\n ('highway_motorway_link', 240),\n ('highway_trunk_link', 230),\n ('highway_primary_link', 220),\n ('highway_secondary_link', 210),\n ('highway_tertiary_link', 200),\n ('highway_service', 150),\n ('highway_track', 110),\n ('highway_path', 100),\n ('highway_footway', 100),\n ('highway_bridleway', 100),\n ('highway_cycleway', 100),\n ('highway_steps', 100),\n ('highway_platform', 90),\n ('highway_proposed', 20),\n ('highway_construction', 10)\n ) AS ordertable (feature, prio)\n ON ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes'))\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n NULL AS oneway,\n 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes')\n )) AS features\n ORDER BY layernotnull, prio, CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END\n) AS tunnels", + "table": "(SELECT *\n FROM (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text\n END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'\n ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway', 380),\n ('highway_trunk', 370),\n ('highway_primary', 360),\n ('highway_secondary', 350),\n ('highway_tertiary', 340),\n ('highway_residential', 330),\n ('highway_unclassified', 330),\n ('highway_road', 330),\n ('highway_living_street', 320),\n ('highway_pedestrian', 310),\n ('highway_raceway', 300),\n ('highway_motorway_link', 240),\n ('highway_trunk_link', 230),\n ('highway_primary_link', 220),\n ('highway_secondary_link', 210),\n ('highway_tertiary_link', 200),\n ('highway_service', 150),\n ('highway_track', 110),\n ('highway_path', 100),\n ('highway_footway', 100),\n ('highway_bridleway', 100),\n ('highway_cycleway', 100),\n ('highway_steps', 100),\n ('highway_platform', 90),\n ('highway_proposed', 20),\n ('highway_construction', 10)\n ) AS ordertable (feature, prio)\n ON ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes'))\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n NULL AS oneway,\n 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes')\n )) AS features\n ORDER BY layernotnull, prio, CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END\n) AS tunnels", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -800,7 +800,7 @@ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n *\n FROM\n (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway',380),\n ('highway_trunk',370),\n ('highway_primary',360),\n ('highway_secondary',350),\n ('highway_tertiary',340),\n ('highway_residential',330),\n ('highway_unclassified',330),\n ('highway_road',330),\n ('highway_living_street',320),\n ('highway_pedestrian',310),\n ('highway_raceway',300),\n ('highway_motorway_link',240),\n ('highway_trunk_link',230),\n ('highway_primary_link',220),\n ('highway_secondary_link',210),\n ('highway_tertiary_link',200),\n ('highway_service',150),\n ('highway_track',110),\n ('highway_path',100),\n ('highway_footway',100),\n ('highway_bridleway',100),\n ('highway_cycleway',100),\n ('highway_steps',100),\n ('highway_platform',90),\n ('highway_proposed',20),\n ('highway_construction',10)\n ) AS ordertable (feature, prio)\n ON ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')))\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(('railway_' ||(CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway end)), ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction, CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n NULL AS oneway, 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct'))\n )\n ) AS features\n ORDER BY prio\n) AS roads_casing", + "table": "(SELECT\n *\n FROM\n (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway',380),\n ('highway_trunk',370),\n ('highway_primary',360),\n ('highway_secondary',350),\n ('highway_tertiary',340),\n ('highway_residential',330),\n ('highway_unclassified',330),\n ('highway_road',330),\n ('highway_living_street',320),\n ('highway_pedestrian',310),\n ('highway_raceway',300),\n ('highway_motorway_link',240),\n ('highway_trunk_link',230),\n ('highway_primary_link',220),\n ('highway_secondary_link',210),\n ('highway_tertiary_link',200),\n ('highway_service',150),\n ('highway_track',110),\n ('highway_path',100),\n ('highway_footway',100),\n ('highway_bridleway',100),\n ('highway_cycleway',100),\n ('highway_steps',100),\n ('highway_platform',90),\n ('highway_proposed',20),\n ('highway_construction',10)\n ) AS ordertable (feature, prio)\n ON ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')))\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(('railway_' ||(CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway end)), ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction, CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n NULL AS oneway, 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct'))\n )\n ) AS features\n ORDER BY prio\n) AS roads_casing", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -852,7 +852,7 @@ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n *\n FROM\n (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway end)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway',380),\n ('highway_trunk',370),\n ('highway_primary',360),\n ('highway_secondary',350),\n ('highway_tertiary',340),\n ('highway_residential',330),\n ('highway_unclassified',330),\n ('highway_road',330),\n ('highway_living_street',320),\n ('highway_pedestrian',310),\n ('highway_raceway',300),\n ('highway_motorway_link',240),\n ('highway_trunk_link',230),\n ('highway_primary_link',220),\n ('highway_secondary_link',210),\n ('highway_tertiary_link',200),\n ('highway_service',150),\n ('highway_track',110),\n ('highway_path',100),\n ('highway_footway',100),\n ('highway_bridleway',100),\n ('highway_cycleway',100),\n ('highway_steps',100),\n ('highway_platform',90),\n ('highway_proposed',20),\n ('highway_construction',10)\n ) AS ordertable (feature, prio)\n on ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')))\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(\n ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)\n ) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text\n END AS service,\n NULL AS oneway,\n 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail',430),\n ('railway_spur',430),\n ('railway_siding',430),\n ('railway_subway',420),\n ('railway_narrow_gauge',420),\n ('railway_light_rail',420),\n ('railway_preserved',420),\n ('railway_funicular',420),\n ('railway_monorail',420),\n ('railway_miniature',420),\n ('railway_turntable',420),\n ('railway_tram',410),\n ('railway_disused',400),\n ('railway_construction',400),\n ('aeroway_runway',60),\n ('aeroway_taxiway',50),\n ('railway_platform',90)) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct'))\n )\n ) AS features\n ORDER BY prio, CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END\n) AS roads_fill", + "table": "(SELECT\n *\n FROM\n (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway end)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway',380),\n ('highway_trunk',370),\n ('highway_primary',360),\n ('highway_secondary',350),\n ('highway_tertiary',340),\n ('highway_residential',330),\n ('highway_unclassified',330),\n ('highway_road',330),\n ('highway_living_street',320),\n ('highway_pedestrian',310),\n ('highway_raceway',300),\n ('highway_motorway_link',240),\n ('highway_trunk_link',230),\n ('highway_primary_link',220),\n ('highway_secondary_link',210),\n ('highway_tertiary_link',200),\n ('highway_service',150),\n ('highway_track',110),\n ('highway_path',100),\n ('highway_footway',100),\n ('highway_bridleway',100),\n ('highway_cycleway',100),\n ('highway_steps',100),\n ('highway_platform',90),\n ('highway_proposed',20),\n ('highway_construction',10)\n ) AS ordertable (feature, prio)\n on ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')))\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(\n ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)\n ) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text\n END AS service,\n NULL AS oneway,\n 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail',430),\n ('railway_spur',430),\n ('railway_siding',430),\n ('railway_subway',420),\n ('railway_narrow_gauge',420),\n ('railway_light_rail',420),\n ('railway_preserved',420),\n ('railway_funicular',420),\n ('railway_monorail',420),\n ('railway_miniature',420),\n ('railway_turntable',420),\n ('railway_tram',410),\n ('railway_disused',400),\n ('railway_construction',400),\n ('aeroway_runway',60),\n ('aeroway_taxiway',50),\n ('railway_platform',90)) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))\n AND (covered IS NULL OR NOT covered = 'yes')\n AND (bridge IS NULL OR NOT bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct'))\n )\n ) AS features\n ORDER BY prio, CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END\n) AS roads_fill", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -983,7 +983,7 @@ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT *\n FROM (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text\n END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'\n ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway', 380),\n ('highway_trunk', 370),\n ('highway_primary', 360),\n ('highway_secondary', 350),\n ('highway_tertiary', 340),\n ('highway_residential', 330),\n ('highway_unclassified', 330),\n ('highway_road', 330),\n ('highway_living_street', 320),\n ('highway_pedestrian', 310),\n ('highway_raceway', 300),\n ('highway_motorway_link', 240),\n ('highway_trunk_link', 230),\n ('highway_primary_link', 220),\n ('highway_secondary_link', 210),\n ('highway_tertiary_link', 200),\n ('highway_service', 150),\n ('highway_track', 110),\n ('highway_path', 100),\n ('highway_footway', 100),\n ('highway_bridleway', 100),\n ('highway_cycleway', 100),\n ('highway_steps', 100),\n ('highway_platform', 90),\n ('highway_proposed', 20),\n ('highway_construction', 10)\n ) AS ordertable (feature, prio)\n ON ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')\n )\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n NULL AS oneway,\n 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')\n )) AS features\n ORDER BY layernotnull, prio, CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END\n) AS bridges", + "table": "(SELECT *\n FROM (\n (SELECT\n way, prio,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text\n END AS service,\n CASE WHEN oneway IN ('yes', '-1') THEN oneway ELSE NULL END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'\n ELSE 'no' END AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('highway_motorway', 380),\n ('highway_trunk', 370),\n ('highway_primary', 360),\n ('highway_secondary', 350),\n ('highway_tertiary', 340),\n ('highway_residential', 330),\n ('highway_unclassified', 330),\n ('highway_road', 330),\n ('highway_living_street', 320),\n ('highway_pedestrian', 310),\n ('highway_raceway', 300),\n ('highway_motorway_link', 240),\n ('highway_trunk_link', 230),\n ('highway_primary_link', 220),\n ('highway_secondary_link', 210),\n ('highway_tertiary_link', 200),\n ('highway_service', 150),\n ('highway_track', 110),\n ('highway_path', 100),\n ('highway_footway', 100),\n ('highway_bridleway', 100),\n ('highway_cycleway', 100),\n ('highway_steps', 100),\n ('highway_platform', 90),\n ('highway_proposed', 20),\n ('highway_construction', 10)\n ) AS ordertable (feature, prio)\n ON ('highway_' || planet_osm_line.highway) = ordertable.feature\n WHERE bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')\n )\n UNION ALL\n (SELECT\n way, prio,\n COALESCE(('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved'\n WHEN surface IS NOT NULL THEN 'unpaved' \n ELSE 'unknown' \n END AS surface,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN ('no', 'private') THEN 'no'::text\n ELSE NULL\n END AS access,\n construction,\n CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,\n NULL AS oneway,\n 'no' AS link,\n CASE WHEN layer~E'^-?\\\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull\n FROM planet_osm_line\n JOIN (VALUES\n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio)\n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE bridge IN ('yes', 'boardwalk', 'cantilever', 'covered', 'low_water_crossing', 'movable', 'trestle', 'viaduct')\n )) AS features\n ORDER BY layernotnull, prio, CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END\n) AS bridges", "geometry_field": "way", "type": "postgis", "key_field": "", diff --git a/project.yaml b/project.yaml index ca5e1cdee4..d7bfc8ac6d 100644 --- a/project.yaml +++ b/project.yaml @@ -408,6 +408,10 @@ Layer: way, prio, ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -457,6 +461,10 @@ Layer: COALESCE(('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)), ('aeroway_' || aeroway)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -706,6 +714,10 @@ Layer: way, prio, ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -753,6 +765,10 @@ Layer: way, prio, COALESCE(('railway_' ||(CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway end)), ('aeroway_' || aeroway)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -831,6 +847,10 @@ Layer: way, prio, ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway end)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -881,6 +901,10 @@ Layer: ('aeroway_' || aeroway) ) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -1008,6 +1032,10 @@ Layer: way, prio, ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -1058,6 +1086,10 @@ Layer: COALESCE(('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)), ('aeroway_' || aeroway)) AS feature, horse, foot, bicycle, tracktype, + CASE WHEN (surface IN ('paved', 'asphalt') OR substr(surface, 0, 8) = 'concrete' OR substr(surface, 0, 13) = 'paving_stones' OR substr(surface, 0, 11) = 'cobblestone') THEN 'paved' + WHEN surface IS NOT NULL THEN 'unpaved' + ELSE 'unknown' + END AS surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL diff --git a/roads.mss b/roads.mss index 32524b0b2c..e60ce9afd1 100644 --- a/roads.mss +++ b/roads.mss @@ -12,9 +12,7 @@ @pedestrian-fill: #ededed; @raceway-fill: pink; @road-fill: #ddd; -@path-fill: black; -@footway-fill: salmon; -@steps-fill: @footway-fill; +@steps-fill: #aaa; @cycleway-fill: blue; @bridleway-fill: green; @track-fill: #996600; @@ -33,11 +31,10 @@ @service-casing: @residential-casing; @living-street-casing: @residential-casing; @pedestrian-casing: @residential-casing; -@path-casing: @default-casing; -@footway-casing: @default-casing; @steps-casing: @default-casing; -@cycleway-casing: @default-casing; -@bridleway-casing: @default-casing; +@path-casing: #aaa; +@cycleway-casing: blue; +@bridleway-casing: green; @track-casing: @default-casing; @residential-construction: #aaa; @@ -56,6 +53,7 @@ @tertiary-tunnel-fill: lighten(@tertiary-fill, 5%); @residential-tunnel-fill: darken(@residential-fill, 5%); @living-street-tunnel-fill: lighten(@living-street-fill, 10%); +@pedestrian-tunnel-fill: lighten(@pedestrian-fill, 3%); @motorway-width-z12: 3.5; @motorway-link-width-z12: 1.5; @@ -73,9 +71,6 @@ @residential-width-z13: 3; @living-street-width-z13: 2; @pedestrian-width-z13: 2; -@bridleway-width-z13: 0.3; -@footway-width-z13: 0.7; -@cycleway-width-z13: 0.7; @path-width-z13: 0.2; @track-width-z13: 0.5; @track-grade1-width-z13: 0.5; @@ -86,6 +81,7 @@ @residential-width-z14: 4.5; @living-street-width-z14: 4; @pedestrian-width-z14: 4; +@path-width-z14: 0.7; @service-width-z14: 2.5; @motorway-width-z15: 12.8; @@ -97,18 +93,16 @@ @residential-width-z15: 8.3; @living-street-width-z15: 6; @pedestrian-width-z15: 6; -@bridleway-width-z15: 1.2; -@footway-width-z15: 1.5; -@cycleway-width-z15: 1.2; -@path-width-z15: 0.5; +@path-width-z15: 1; @track-width-z15: 1.5; @track-grade1-width-z15: 0.75; @track-grade2-width-z15: 0.75; -@steps-width-z15: 4; +@steps-width-z15: 3; @residential-width-z16: 11.2; @living-street-width-z16: 9; @pedestrian-width-z16: 9; +@path-width-z16: 2; @service-width-z16: 6; @minor-service-width-z16: 4; @@ -121,15 +115,25 @@ @residential-width-z17: 15.5; @living-street-width-z17: 14; @pedestrian-width-z17: 14; +@path-width-z17: 4.5; @service-width-z17: 7; +@steps-width-z17: 4; + +@path-width-z18: 5; +@steps-width-z18: 4.5; @casing-width-z12: 0.5; @casing-width-z13: 0.5; @residential-casing-width-z13: 0.5; +@path-casing-width-z13: 0.1; @casing-width-z14: 0.5; +@path-casing-width-z14: 0.1; @casing-width-z15: 0.7; +@path-casing-width-z15: 0.1; @casing-width-z16: 0.7; +@path-casing-width-z16: 0.3; @casing-width-z17: 1; +@path-casing-width-z17: 0.6; @bridge-casing-width-z12: 0.5; @bridge-casing-width-z13: 0.5; @@ -138,9 +142,9 @@ @bridge-casing-width-z16: 0.75; @bridge-casing-width-z17: 0.75; -@paths-background-width: 1; -@paths-bridge-casing-width: 0.5; -@paths-tunnel-casing-width: 1; +@path-background-width: 0.5; +@path-bridge-casing-width: 0.5; +@path-tunnel-casing-width: 1; .roads-casing, .bridges-casing, .tunnels-casing { ::casing { @@ -362,59 +366,46 @@ .bridges-casing { [zoom >= 14][access != 'no'], [zoom >= 15] { - line-width: @steps-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); - [zoom >= 15] { line-width: @steps-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } + line-width: @steps-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); + [zoom >= 15] { line-width: @steps-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); } + [zoom >= 17] { line-width: @steps-width-z17 + 2 * (@path-background-width + @path-bridge-casing-width); } + [zoom >= 18] { line-width: @steps-width-z18 + 2 * (@path-background-width + @path-bridge-casing-width); } line-color: @bridge-casing; line-join: round; } } - } - - [feature = 'highway_bridleway'], - [feature = 'highway_path'][horse = 'designated'] { - .bridges-casing { + .tunnel-casing { [zoom >= 14][access != 'no'], [zoom >= 15] { - line-width: @bridleway-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); - [zoom >= 15] { line-width: @bridleway-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } - line-color: @bridge-casing; - line-join: round; + line-width: @steps-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); + [zoom >= 15] { line-width: @steps-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); } + [zoom >= 17] { line-width: @steps-width-z17 + 2 * (@path-background-width + @path-bridge-casing-width); } + [zoom >= 18] { line-width: @steps-width-z18 + 2 * (@path-background-width + @path-bridge-casing-width); } + line-color: @tunnel-casing; + line-dasharray: 4,2; } } } - + + [feature = 'highway_path'], [feature = 'highway_footway'], - [feature = 'highway_path'][foot = 'designated'] { - .bridges-casing { - [zoom >= 14][access != 'no'], - [zoom >= 15] { - line-width: @footway-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); - [zoom >= 15] { line-width: @footway-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } - line-color: @bridge-casing; - line-join: round; - } - } - } - [feature = 'highway_cycleway'], - [feature = 'highway_path'][bicycle = 'designated'] { - .bridges-casing { - [zoom >= 14][access != 'no'], - [zoom >= 15] { - line-width: @cycleway-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); - [zoom >= 15] { line-width: @cycleway-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } - line-color: @bridge-casing; - line-join: round; - } - } - } - - [feature = 'highway_path'] { + [feature = 'highway_bridleway'] { .bridges-casing { - [zoom >= 14][access != 'no'], - [zoom >= 15] { - line-width: @path-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); - [zoom >= 15] { line-width: @path-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } + [zoom >= 14] { + line-width: @path-width-z14 + 2 * (@path-background-width + @path-bridge-casing-width); + [zoom >= 15] { + line-width: @path-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [zoom >= 16] { + line-width: @path-width-z16 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [zoom >= 17] { + line-width: @path-width-z17 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [zoom >= 18] { + line-width: @path-width-z18 + 2 * (@path-background-width + @path-bridge-casing-width); + } line-color: @bridge-casing; line-join: round; } @@ -423,24 +414,48 @@ [feature = 'highway_track'] { .bridges-casing { - [zoom >= 13][access != 'no'] { + [zoom >= 13][access != 'no'], + [zoom >= 15] { line-color: @bridge-casing; line-join: round; - line-width: @track-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); + line-width: @track-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); [tracktype = 'grade1'] { - line-width: @track-grade1-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); + line-width: @track-grade1-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); } [tracktype = 'grade2'] { - line-width: @track-grade2-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); + line-width: @track-grade2-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [zoom >= 15] { + line-width: @track-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + [tracktype = 'grade1'] { + line-width: @track-grade1-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [tracktype = 'grade2'] { + line-width: @track-grade2-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + } } } + } + .tunnel-casing { + [zoom >= 13][access != 'no'], [zoom >= 15] { - line-width: @track-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); + line-color: @tunnel-casing; + line-dasharray: 4,2; + line-width: @track-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); [tracktype = 'grade1'] { - line-width: @track-grade1-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); + line-width: @track-grade1-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); } [tracktype = 'grade2'] { - line-width: @track-grade2-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); + line-width: @track-grade2-width-z13 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [zoom >= 15] { + line-width: @track-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + [tracktype = 'grade1'] { + line-width: @track-grade1-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + } + [tracktype = 'grade2'] { + line-width: @track-grade2-width-z15 + 2 * (@path-background-width + @path-bridge-casing-width); + } } } } @@ -538,66 +553,62 @@ } } - ::bridges_background { - [feature = 'highway_bridleway'], - [feature = 'highway_path'][horse = 'designated'] { - .bridges-casing { - [zoom >= 14][access != 'no'], - [zoom >= 15] { - line-width: @bridleway-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @bridleway-width-z15 + 2 * @paths-background-width; } - line-color: @bridleway-casing; - line-join: round; - } - } - } + ::bridges_and_tunnels_background { - [feature = 'highway_footway'], - [feature = 'highway_path'][foot = 'designated'] { + [feature = 'highway_steps'] { .bridges-casing { [zoom >= 14][access != 'no'], [zoom >= 15] { - line-width: @footway-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @footway-width-z15 + 2 * @paths-background-width; } - line-color: @footway-casing; + line-width: @steps-width-z13 + 2 * @path-background-width; + [zoom >= 15] { line-width: @steps-width-z15 + 2 * @path-background-width; } + [zoom >= 17] { line-width: @steps-width-z17 + 2 * @path-background-width; } + [zoom >= 18] { line-width: @steps-width-z18 + 2 * @path-background-width; } + line-color: @steps-casing; line-join: round; } } - } - - [feature = 'highway_cycleway'], - [feature = 'highway_path'][bicycle = 'designated'] { - .bridges-casing { - [zoom >= 14][access != 'no'], + .tunnels-casing { + [zoom >= 13][access != 'no'], [zoom >= 15] { - line-width: @cycleway-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @cycleway-width-z15 + 2 * @paths-background-width; } - line-color: @cycleway-casing; + line-width: @steps-width-z13 + 2 * @path-background-width; + [zoom >= 15] { line-width: @steps-width-z15 + 2 * @path-background-width; } + [zoom >= 17] { line-width: @steps-width-z17 + 2 * @path-background-width; } + [zoom >= 18] { line-width: @steps-width-z18 + 2 * @path-background-width; } + line-color: @steps-casing; + line-cap: round; line-join: round; } } } - [feature = 'highway_steps'] { + [feature = 'highway_path'], + [feature = 'highway_footway'], + [feature = 'highway_cycleway'], + [feature = 'highway_bridleway'] { .bridges-casing { [zoom >= 14][access != 'no'], [zoom >= 15] { - line-width: @steps-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @steps-width-z15 + 2 * @paths-background-width; } + line-width: @path-width-z13 + 2 * @path-background-width; + [zoom >= 15] { line-width: @path-width-z15 + 2 * @path-background-width; } + [zoom >= 16] { line-width: @path-width-z16 + 2 * @path-background-width; } + [zoom >= 17] { line-width: @path-width-z17 + 2 * @path-background-width; } + [zoom >= 18] { line-width: @path-width-z18 + 2 * @path-background-width; } line-color: @steps-casing; line-join: round; } } - } - - [feature = 'highway_path'] { - .bridges-casing { - [zoom >= 14][access != 'no'], + .tunnels-casing,.roads-casing { + [zoom >= 13][access != 'no'], [zoom >= 15] { - line-width: @path-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @path-width-z15 + 2 * @paths-background-width; } - line-color: @path-casing; + line-width: @path-width-z13 + 2 * @path-background-width; + [zoom >= 15] { line-width: @path-width-z15 + 2 * @path-background-width; } + [zoom >= 16] { line-width: @path-width-z16 + 2 * @path-background-width; } + [zoom >= 17] { line-width: @path-width-z17 + 2 * @path-background-width; } + [zoom >= 18] { line-width: @path-width-z18 + 2 * @path-background-width; } + line-color: @steps-casing; + line-cap: round; line-join: round; + line-opacity: 0.4; } } } @@ -608,21 +619,44 @@ [zoom >= 13][access != 'no'] { line-color: @track-casing; line-join: round; - line-width: @track-width-z13 + 2 * @paths-background-width; + line-width: @track-width-z13 + 2 * @path-background-width; [tracktype = 'grade1'] { - line-width: @track-grade1-width-z13 + 2 * @paths-background-width; + line-width: @track-grade1-width-z13 + 2 * @path-background-width; } [tracktype = 'grade2'] { - line-width: @track-grade2-width-z13 + 2 * @paths-background-width; + line-width: @track-grade2-width-z13 + 2 * @path-background-width; + } + [zoom >= 15] { + line-width: @track-width-z15 + 2 * @path-background-width; + [tracktype = 'grade1'] { + line-width: @track-grade1-width-z15 + 2 * @path-background-width; + } + [tracktype = 'grade2'] { + line-width: @track-grade2-width-z15 + 2 * @path-background-width; + } } } - [zoom >= 15] { - line-width: @track-width-z15 + 2 * @paths-background-width; + } + .tunnels-casing { + [zoom >= 13][access != 'no'] { + line-color: @track-casing; + line-cap: round; + line-join: round; + line-width: @track-width-z13 + 2 * @path-background-width; [tracktype = 'grade1'] { - line-width: @track-grade1-width-z15 + 2 * @paths-background-width; + line-width: @track-grade1-width-z13 + 2 * @path-background-width; } [tracktype = 'grade2'] { - line-width: @track-grade2-width-z15 + 2 * @paths-background-width; + line-width: @track-grade2-width-z13 + 2 * @path-background-width; + } + [zoom >= 15] { + line-width: @track-width-z15 + 2 * @path-background-width; + [tracktype = 'grade1'] { + line-width: @track-grade1-width-z15 + 2 * @path-background-width; + } + [tracktype = 'grade2'] { + line-width: @track-grade2-width-z15 + 2 * @path-background-width; + } } } } @@ -695,6 +729,119 @@ } } } + + [feature = 'highway_footway'], + [feature = 'highway_cycleway'], + [feature = 'highway_bridleway'], + [feature = 'highway_path'] { + [zoom >= 13] { + casing/line-color: @path-casing; + casing/line-width: @path-width-z13; + casing/line-dasharray: 0,0; + [zoom >= 14] { casing/line-width: @path-width-z14; } + [zoom >= 15] { casing/line-width: @path-width-z15; } + [zoom >= 16] { casing/line-width: @path-width-z16; } + [zoom >= 17] { casing/line-width: @path-width-z17; } + .roads-casing { + casing/line-join: round; + casing/line-cap: round; + } + .tunnels-casing { + casing/line-dasharray: 4,2; + } + } + } + + [feature = 'highway_cycleway'], + [feature = 'highway_path'][bicycle = 'designated'] { + [zoom >= 13] { + casing/line-color: @cycleway-casing; + casing/line-width: @path-width-z13; + [zoom >= 14] { casing/line-width: @path-width-z14; } + [zoom >= 15] { casing/line-width: @path-width-z15; } + [zoom >= 16] { casing/line-width: @path-width-z16; } + [zoom >= 17] { casing/line-width: @path-width-z17; } + .roads-casing { + casing/line-join: round; + casing/line-cap: round; + } + .roads-casing, .bridges-casing { + casing/line-opacity: 0.6; + [zoom >= 17] { + casing/line-opacity: 0.8; + } + } + .tunnels-casing { + casing/line-dasharray: 4,2; + } + } + } + + [feature = 'highway_bridleway'], + [feature = 'highway_path'][horse = 'designated'] { + [zoom >= 13] { + casing/line-color: @bridleway-casing; + casing/line-width: @path-width-z13; + [zoom >= 14] { casing/line-width: @path-width-z14; } + [zoom >= 15] { casing/line-width: @path-width-z15; } + [zoom >= 16] { casing/line-width: @path-width-z16; } + [zoom >= 17] { casing/line-width: @path-width-z17; } + .roads-casing { + casing/line-join: round; + casing/line-cap: round; + } + .roads-casing, .bridges-casing { + casing/line-opacity: 0.6; + [zoom >= 17] { + casing/line-opacity: 0.8; + } + } + .tunnels-casing { + casing/line-dasharray: 4,2; + } + } + } + + [feature = 'highway_cycleway'][foot = 'designated'], + [feature = 'highway_cycleway'][foot = 'yes'], + [feature = 'highway_path'][foot = 'designated'] { + [zoom >= 17] { + foot/line-color: @path-casing; + foot/line-width: @path-width-z17; + foot/line-dasharray: 9,9; + } + } + + [feature = 'highway_footway'][bicycle = 'designated'], + [feature = 'highway_footway'][bicycle = 'yes'] { + [zoom >= 17] { + bicycle/line-color: @cycleway-casing; + bicycle/line-width: @path-width-z17; + bicycle/line-dasharray: 9,9; + bicycle/line-opacity: 0.6; + } + } + + [feature = 'highway_path'][foot != 'designated'][bicycle != 'designated'][surface = 'unpaved'], + [feature = 'highway_path'][foot != 'designated'][bicycle != 'designated'][surface = 'unknown'] { + [zoom >= 13] { + casing/line-color: @track-fill; + casing/line-width: @path-width-z13 - @path-casing-width-z13; + casing/line-dasharray: 3,3; + [zoom >= 14] { casing/line-width: @path-width-z14 - @path-casing-width-z14; } + [zoom >= 15] { + casing/line-width: @path-width-z15 - @path-casing-width-z15; + casing/line-dasharray: 3,3; + } + [zoom >= 16] { casing/line-width: @path-width-z16 - @path-casing-width-z16; } + [zoom >= 17] { casing/line-width: @path-width-z17 - @path-casing-width-z17; } + .tunnels-fill { + casing/line-dasharray: 4,2; + casing/line-join: round; + casing/line-cap: round; + } + } + } } .roads-fill,.bridges-fill,.tunnels-fill { @@ -1124,194 +1271,52 @@ [feature = 'highway_steps'] { [zoom >= 13][access != 'no'], [zoom >= 15] { - .tunnels-fill { - tunnelcasing/line-width: @steps-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [zoom >= 15] { tunnelcasing/line-width: @steps-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } - tunnelcasing/line-color: @tunnel-casing; - tunnelcasing/line-dasharray: 4,2; - } - .roads-fill[zoom >= 15], - .tunnels-fill[zoom >= 13] { - background/line-color: @steps-casing; - background/line-cap: round; - background/line-join: round; - background/line-width: @steps-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { background/line-width: @steps-width-z15 + 2 * @paths-background-width; } - .roads-fill { background/line-opacity: 0.4; } - } line/line-color: @steps-fill; line/line-dasharray: 2,1; - [zoom >= 15] { line/line-width: @steps-width-z15; } line/line-width: @steps-width-z13; [zoom >= 15] { line/line-width: @steps-width-z15; } + [zoom >= 17] { line/line-width: @steps-width-z17; } + [zoom >= 18] { line/line-width: @steps-width-z18; } } } - - [feature = 'highway_bridleway'], - [feature = 'highway_path'][horse = 'designated'] { - [zoom >= 13][access != 'no'], - [zoom >= 15] { - .tunnels-fill { - tunnelcasing/line-width: @bridleway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [zoom >= 15] { tunnelcasing/line-width: @bridleway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } - tunnelcasing/line-color: @tunnel-casing; - tunnelcasing/line-dasharray: 4,2; - } - .roads-fill[zoom >= 15], - .tunnels-fill[zoom >= 13] { - background/line-color: @bridleway-casing; - background/line-cap: round; - background/line-join: round; - background/line-width: @bridleway-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { background/line-width: @bridleway-width-z15 + 2 * @paths-background-width; } - .roads-fill { background/line-opacity: 0.4; } - } - line/line-color: @bridleway-fill; - line/line-dasharray: 4,2; - line/line-width: @bridleway-width-z13; - [zoom >= 15] { line/line-width: @bridleway-width-z15; } - .tunnels-fill { - line/line-join: round; - line/line-cap: round; - } - } - } - + + [feature = 'highway_path'], [feature = 'highway_footway'], - [feature = 'highway_path'][foot = 'designated'] { - [zoom >= 13][access != 'no'], - [zoom >= 15] { - .tunnels-fill { - tunnelcasing/line-width: @footway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [zoom >= 15] { tunnelcasing/line-width: @footway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } - tunnelcasing/line-color: @tunnel-casing; - tunnelcasing/line-dasharray: 4,2; - } - .roads-fill[zoom >= 15], - .tunnels-fill[zoom >= 13] { - background/line-color: @footway-casing; - background/line-cap: round; - background/line-join: round; - background/line-width: @footway-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { background/line-width: @footway-width-z15 + 2 * @paths-background-width; } - .roads-fill { background/line-opacity: 0.4; } - } - line/line-color: @footway-fill; - line/line-dasharray: 1,3; - line/line-join: round; - line/line-cap: round; - line/line-width: @footway-width-z13; - [zoom >= 15] { line/line-width: @footway-width-z15; } - } - } - [feature = 'highway_cycleway'], - [feature = 'highway_path'][bicycle = 'designated'] { - [zoom >= 13][access != 'no'], - [zoom >= 15] { - .tunnels-fill { - tunnelcasing/line-width: @cycleway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [zoom >= 15] { tunnelcasing/line-width: @cycleway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } - tunnelcasing/line-color: @tunnel-casing; - tunnelcasing/line-dasharray: 4,2; - } - .roads-fill[zoom >= 15], - .tunnels-fill[zoom >= 13] { - background/line-color: @cycleway-casing; - background/line-cap: round; - background/line-join: round; - background/line-width: @cycleway-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { background/line-width: @cycleway-width-z15 + 2 * @paths-background-width; } - .roads-fill { background/line-opacity: 0.4; } - } - line/line-color: @cycleway-fill; - line/line-dasharray: 1,3; - line/line-join: round; - line/line-cap: round; - line/line-width: @cycleway-width-z13; - [zoom >= 15] { line/line-width: @cycleway-width-z15; } - } - } - - /* - * The above defininitions should override this when needed - * given the specitivity precedence. - */ - [feature = 'highway_path'] { + [feature = 'highway_bridleway'] { [zoom >= 13][access != 'no'], [zoom >= 15] { + line-width: @path-width-z13 - 2 * @path-casing-width-z13; + [zoom >= 14] { line-width: @path-width-z14 - 2 * @path-casing-width-z14; } + [zoom >= 15] { line-width: @path-width-z15 - 2 * @path-casing-width-z15; } + [zoom >= 16] { line-width: @path-width-z16 - 2 * @path-casing-width-z16; } + [zoom >= 17] { line-width: @path-width-z17 - 2 * @path-casing-width-z17; } + line-color: @pedestrian-fill; + line-join: round; + line-cap: round; .tunnels-fill { - tunnelcasing/line-width: @path-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [zoom >= 15] { tunnelcasing/line-width: @path-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } - tunnelcasing/line-color: @tunnel-casing; - tunnelcasing/line-dasharray: 4,2; - } - .roads-fill[zoom >= 15], - .tunnels-fill[zoom >= 13] { - background/line-color: @path-casing; - background/line-cap: round; - background/line-join: round; - background/line-width: @path-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { background/line-width: @path-width-z15 + 2 * @paths-background-width; } - .roads-fill { background/line-opacity: 0.4; } + line-color: @pedestrian-tunnel-fill; } - line/line-color: @path-fill; - line/line-dasharray: 6,3; - line/line-join: round; - line/line-cap: round; - line/line-width: @path-width-z13; - [zoom >= 15] { line/line-width: @path-width-z15; } } } [feature = 'highway_track'] { [zoom >= 13][access != 'no'], [zoom >= 15] { - .tunnels-fill { - tunnelcasing/line-color: @tunnel-casing; - tunnelcasing/line-dasharray: 4,2; - tunnelcasing/line-width: @track-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [tracktype = 'grade1'] { - tunnelcasing/line-width: @track-grade1-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - } - [tracktype = 'grade2'] { - tunnelcasing/line-width: @track-grade2-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - } - [zoom >= 15]{ - tunnelcasing/line-width: @track-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [tracktype = 'grade1'] { - tunnelcasing/line-width: @track-grade1-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - } - [tracktype = 'grade2'] { - tunnelcasing/line-width: @track-grade2-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - } - } - } /* The white casing that you mainly see against forests and other dark features */ - .roads-fill[zoom >= 15], - .tunnels-fill[zoom >= 13] { + .roads-fill[zoom >= 15] { background/line-opacity: 0.4; background/line-color: @track-casing; background/line-join: round; background/line-cap: round; - background/line-width: @track-width-z13 + 2 * @paths-background-width; + background/line-width: @track-width-z15 + 2 * @path-background-width; /* With the heavier dasharrays on grade1 and grade2 it helps to make the casing a bit larger */ [tracktype = 'grade1'] { - background/line-width: @track-grade1-width-z13 + 2 * @paths-background-width; + background/line-width: @track-grade1-width-z15 + 2 * @path-background-width; } [tracktype = 'grade2'] { - background/line-width: @track-grade2-width-z13 + 2 * @paths-background-width; - } - - [zoom >= 15] { - background/line-width: @track-width-z15 + 2 * @paths-background-width; - [tracktype = 'grade1'] { - background/line-width: @track-grade1-width-z15 + 2 * @paths-background-width; - } - [tracktype = 'grade2'] { - background/line-width: @track-grade2-width-z15 + 2 * @paths-background-width; - } + background/line-width: @track-grade2-width-z15 + 2 * @path-background-width; } }