diff --git a/openstreetmap-carto.style b/openstreetmap-carto.style index 1c53f731d0..df235c2ecb 100644 --- a/openstreetmap-carto.style +++ b/openstreetmap-carto.style @@ -99,6 +99,7 @@ node,way disused text linear node ele text linear node,way embankment text linear node,way foot text linear +node,way segregated text linear node,way generator:source text linear node,way harbour text polygon node,way highway text linear diff --git a/project.mml b/project.mml index ed4a6cf355..4de5e30395 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, segregated, 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, segregated, 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", "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, segregated, 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, segregated, 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", "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, segregated, 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, segregated, 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", "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, segregated, 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, segregated, 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", "geometry_field": "way", "type": "postgis", "key_field": "", diff --git a/project.yaml b/project.yaml index ca5e1cdee4..bc0b9655d8 100644 --- a/project.yaml +++ b/project.yaml @@ -407,7 +407,7 @@ Layer: (SELECT 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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -456,7 +456,7 @@ 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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -705,7 +705,7 @@ Layer: (SELECT 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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -752,7 +752,7 @@ Layer: (SELECT 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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -830,7 +830,7 @@ Layer: (SELECT 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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -880,7 +880,7 @@ Layer: ('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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -1007,7 +1007,7 @@ Layer: (SELECT 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, + horse, foot, segregated, bicycle, tracktype, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -1057,7 +1057,7 @@ 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, + horse, foot, segregated, bicycle, tracktype, 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..f5359aa1af 100644 --- a/roads.mss +++ b/roads.mss @@ -1226,6 +1226,36 @@ } line/line-color: @cycleway-fill; line/line-dasharray: 1,3; + /* + * For shared cycleway and footway, use alternating footway + * and cycleway dashing (blue 1-space 3-red 1-space 3). + */ + [foot = 'yes'], + [foot = 'designated'] { + line/line-dasharray: 1, 7; + b/line-color: @footway-fill; + b/line-dasharray: 0, 4, 1, 3; + b/line-join: round; + b/line-cap: round; + b/line-width: @footway-width-z15; + } + /* + * For segregated cycleway and footway, use alternating + * footway and cycleway dashing with longer cycleway dashes. + * 'Segregation' usually consist painted white lane on the + * road, or other very minor segregation. See Key:segregated + * for more info. + * blue 5-space 3-red 1-space 3 + */ + [foot = 'yes'][segregated = 'yes'], + [foot = 'designated'][segregated = 'yes'] { + line/line-dasharray: 5, 7; + b/line-color: @footway-fill; + b/line-dasharray: 0, 8, 1, 3; + b/line-join: round; + b/line-cap: round; + b/line-width: @footway-width-z15; + } line/line-join: round; line/line-cap: round; line/line-width: @cycleway-width-z13;