[Git][debian-gis-team/openstreetmap-carto][upstream] New upstream version 5.9.0
Bas Couwenberg (@sebastic)
gitlab at salsa.debian.org
Thu Oct 17 23:42:16 BST 2024
Bas Couwenberg pushed to branch upstream at Debian GIS Project / openstreetmap-carto
Commits:
ee95d6c1 by Bas Couwenberg at 2024-10-17T17:59:13+02:00
New upstream version 5.9.0
- - - - -
12 changed files:
- .github/workflows/ci.yml
- CHANGELOG.md
- CONTRIBUTING.md
- INSTALL.md
- + functions.sql
- project.mml
- style/amenity-points.mss
- style/buildings.mss
- style/landcover.mss
- style/roads.mss
- + symbols/leisure/dance.svg
- + symbols/shop/hearing_aids.svg
Changes:
=====================================
.github/workflows/ci.yml
=====================================
@@ -65,6 +65,8 @@ jobs:
osm2pgsql -G --hstore --style openstreetmap-carto.style --tag-transform-script openstreetmap-carto.lua -d gis -r xml <(echo '<osm version="0.6"/>')
- name: Create indexes
run: psql -1Xq -v ON_ERROR_STOP=1 -d gis -f indexes.sql
+ - name: Load functions
+ run: psql -1Xq -v ON_ERROR_STOP=1 -d gis -f functions.sql
- name: Load empty shapefiles
run: scripts/get-external-data.py --no-update --cache -D scripts/empty_files
- name: Test queries are valid
=====================================
CHANGELOG.md
=====================================
@@ -1,4 +1,14 @@
-## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.8.0...master)
+## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.9.0...master)
+
+## [v5.9.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.8.0...v5.9.0) - 2024-10-17
+### Changes
+- Adding rendering of shop=hearing_aids with a dedicated symbol (#4909)
+- Restoring rendering of name labels for natural=reef (#4918)
+- Adding rendering of lines with barrier=jersey_barrier (#4923)
+- Removing rendering of railway=preserved in favor of interpreting railway:preserved=yes on other railway=* (#4965)
+- Removing rendering of shop=jewellery as synonym for shop=jewelry (#4988)
+- Adding rendering of leisure=dance with a point symbol and label (#4996)
+- Interpretation of transport mode specific access tags on roads/paths (#4952)
## [v5.8.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.7.0...v5.8.0) - 2023-11-26
### Changes
=====================================
CONTRIBUTING.md
=====================================
@@ -116,6 +116,27 @@ instead of
}
}
```
+* Use the PostgreSQL quoting syntax for attributes (columns) and string-values of selectors.
+ Use no quotes or double quotes for attributes (columns) and single quotes for string-values.
+ For Example:
+
+```mss
+#layer[entrance = 'yes'] {
+ marker-width: 6.0;
+}
+#layer["generator:source" = 'wind'] {
+ marker-width: 8.0;
+}
+```
+instead of
+```mss
+#layer[entrance = "yes"] {
+ marker-width: 6.0;
+}
+#layer['generator:source' = 'wind'] {
+ marker-width: 8.0;
+}
+```
## SQL style guidelines
Because SQL within JSON or YAML will not generally be syntax highlighted, indentation and caps are particularly important.
=====================================
INSTALL.md
=====================================
@@ -47,6 +47,13 @@ The indexes can be created in parallel with
scripts/indexes.py -0 | xargs -0 -P0 -I{} psql -d gis -c "{}"
```
+### Database functions
+Some functions need to be loaded into the database for current versions. These can be added / re-loaded at any point using:
+
+```sh
+psql -d gis -f functions.sql
+```
+
## Scripted download
Some features are rendered using preprocessed shapefiles.
=====================================
functions.sql
=====================================
@@ -0,0 +1,74 @@
+/* Additional database functions for openstreetmap-carto */
+
+/* Access functions below adapted from https://github.com/imagico/osm-carto-alternative-colors/tree/591c861112b4e5d44badd108f4cd1409146bca0b/sql/roads.sql */
+
+/* Simplified 'yes', 'destination', 'no', 'unrecognised', NULL scale for access restriction
+ 'no' is returned if the rendering for highway category does not support 'restricted'.
+ NULL is functionally equivalent to 'yes', but indicates the absence of a restriction
+ rather than a positive access = yes. 'unrecognised' corresponds to an uninterpretable
+ access restriction e.g. access=unknown or motorcar=occasionally */
+CREATE OR REPLACE FUNCTION carto_int_access(accessvalue text, allow_restricted boolean)
+ RETURNS text
+ LANGUAGE SQL
+ IMMUTABLE PARALLEL SAFE
+AS $$
+SELECT
+ CASE
+ WHEN accessvalue IN ('yes', 'designated', 'permissive') THEN 'yes'
+ WHEN accessvalue IN ('destination', 'delivery', 'customers') THEN
+ CASE WHEN allow_restricted = TRUE THEN 'restricted' ELSE 'yes' END
+ WHEN accessvalue IN ('no', 'permit', 'private', 'agricultural', 'forestry', 'agricultural;forestry') THEN 'no'
+ WHEN accessvalue IS NULL THEN NULL
+ ELSE 'unrecognised'
+ END
+$$;
+
+/* Try to promote path to cycleway (if bicycle allowed), then bridleway (if horse)
+ This duplicates existing behaviour where designated access is required */
+CREATE OR REPLACE FUNCTION carto_path_type(bicycle text, horse text)
+ RETURNS text
+ LANGUAGE SQL
+ IMMUTABLE PARALLEL SAFE
+AS $$
+SELECT
+ CASE
+ WHEN bicycle IN ('designated') THEN 'cycleway'
+ WHEN horse IN ('designated') THEN 'bridleway'
+ ELSE 'path'
+ END
+$$;
+
+/* Return int_access value which will be used to determine access marking.
+ Return values are documented above for carto_int_access function.
+
+ Note that the code handling the promotion of highway=path assumes that
+ promotion to cycleway or bridleway is based on the value of bicycle or
+ horse respectively. A more general formulation would be, for example,
+ WHEN 'cycleway' THEN carto_int_access(COALESCE(NULLIF(bicycle, 'unknown'), "access"), FALSE) */
+CREATE OR REPLACE FUNCTION carto_highway_int_access(highway text, "access" text, foot text, bicycle text, horse text, motorcar text, motor_vehicle text, vehicle text)
+ RETURNS text
+ LANGUAGE SQL
+ IMMUTABLE PARALLEL SAFE
+AS $$
+SELECT
+ CASE
+ WHEN highway IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary',
+ 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'unclassified', 'living_street', 'service', 'road') THEN
+ carto_int_access(
+ COALESCE(
+ NULLIF(motorcar, 'unknown'),
+ NULLIF(motor_vehicle, 'unknown'),
+ NULLIF(vehicle, 'unknown'),
+ "access"), TRUE)
+ WHEN highway = 'path' THEN
+ CASE carto_path_type(bicycle, horse)
+ WHEN 'cycleway' THEN carto_int_access(bicycle, FALSE)
+ WHEN 'bridleway' THEN carto_int_access(horse, FALSE)
+ ELSE carto_int_access(COALESCE(NULLIF(foot, 'unknown'), "access"), FALSE)
+ END
+ WHEN highway IN ('pedestrian', 'footway', 'steps') THEN carto_int_access(COALESCE(NULLIF(foot, 'unknown'), "access"), FALSE)
+ WHEN highway = 'cycleway' THEN carto_int_access(COALESCE(NULLIF(bicycle, 'unknown'), "access"), FALSE)
+ WHEN highway = 'bridleway' THEN carto_int_access(COALESCE(NULLIF(horse, 'unknown'), "access"), FALSE)
+ ELSE carto_int_access("access", TRUE)
+ END
+$$;
=====================================
project.mml
=====================================
@@ -444,32 +444,25 @@ Layer:
(SELECT
way,
(CASE WHEN feature IN ('highway_motorway_link', 'highway_trunk_link', 'highway_primary_link', 'highway_secondary_link', 'highway_tertiary_link') THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
- horse,
- foot,
- bicycle,
tracktype,
int_surface,
- access,
+ int_access,
construction,
service,
link,
+ preserved,
layernotnull
FROM ( -- subselect that contains both roads and rail
SELECT
way,
- 'highway_' || highway AS feature, --only motorway to tertiary links are accepted later on
- horse,
- foot,
- bicycle,
+ 'highway_' || (CASE WHEN highway = 'path' THEN carto_path_type(bicycle, horse) ELSE highway END) AS feature,
tracktype,
CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', 'grass_paver', 'gravel', 'ground',
'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay', 'ice', 'snow') THEN 'unpaved'
WHEN surface IN ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
'concrete:plates', 'paving_stones', 'metal', 'wood', 'unhewn_cobblestone') THEN 'paved'
END AS int_surface,
- CASE WHEN access IN ('destination') THEN 'destination'::text
- WHEN access IN ('no', 'private') THEN 'no'::text
- END AS access,
+ carto_highway_int_access(highway, access, foot, bicycle, horse, tags->'motorcar', tags->'motor_vehicle', tags->'vehicle') AS int_access,
construction,
CASE
WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text
@@ -479,6 +472,7 @@ Layer:
WHEN highway IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') THEN 'yes'
ELSE 'no'
END AS link,
+ 'no' as preserved,
COALESCE(layer,0) AS layernotnull,
z_order
FROM planet_osm_line
@@ -487,22 +481,20 @@ Layer:
UNION ALL
SELECT
way,
- 'railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text
+ 'railway_' || (CASE
WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'
WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service'
ELSE railway END) AS feature,
- horse,
- foot,
- bicycle,
tracktype,
'null',
- CASE
- WHEN access IN ('destination') THEN 'destination'::text
- WHEN access IN ('no', 'private') THEN 'no'::text
- END AS access,
+ NULL,
construction,
CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
'no' AS link,
+ (CASE
+ WHEN tags->'railway:preserved' = 'yes' THEN 'yes'
+ ELSE 'no'
+ END) AS preserved,
COALESCE(layer,0) AS layernotnull,
z_order
FROM planet_osm_line
@@ -513,8 +505,8 @@ Layer:
layernotnull,
z_order,
CASE WHEN substring(feature for 8) = 'railway_' THEN 2 ELSE 1 END,
- CASE WHEN feature IN ('railway_INT-preserved-ssy', 'railway_INT-spur-siding-yard', 'railway_tram-service') THEN 0 ELSE 1 END,
- CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END,
+ CASE WHEN feature IN ('railway_INT-spur-siding-yard', 'railway_tram-service') THEN 0 ELSE 1 END,
+ CASE int_access WHEN 'no' THEN 0 WHEN 'restricted' THEN 1 ELSE 2 END,
CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 1 END
) AS tunnels
properties:
@@ -570,7 +562,7 @@ Layer:
WHERE way && !bbox!
) _
WHERE barrier IN ('chain', 'city_wall', 'ditch', 'fence', 'guard_rail',
- 'handrail', 'hedge', 'retaining_wall', 'wall')
+ 'handrail', 'hedge', 'retaining_wall', 'wall', 'jersey_barrier')
OR historic = 'citywalls'
AND (waterway IS NULL OR waterway NOT IN ('river', 'canal', 'stream', 'drain', 'ditch'))
) AS features
@@ -681,32 +673,25 @@ Layer:
(SELECT
way,
(CASE WHEN feature IN ('highway_motorway_link', 'highway_trunk_link', 'highway_primary_link', 'highway_secondary_link', 'highway_tertiary_link') THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
- horse,
- foot,
- bicycle,
tracktype,
int_surface,
- access,
+ int_access,
construction,
service,
link,
+ preserved,
layernotnull
FROM ( -- subselect that contains both roads and rail/aero
SELECT
way,
- ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on
- horse,
- foot,
- bicycle,
+ 'highway_' || (CASE WHEN highway = 'path' THEN carto_path_type(bicycle, horse) ELSE highway END) AS feature,
tracktype,
CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', 'grass_paver', 'gravel', 'ground',
'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay', 'ice', 'snow') THEN 'unpaved'
WHEN surface IN ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
'concrete:plates', 'paving_stones', 'metal', 'wood', 'unhewn_cobblestone') THEN 'paved'
END AS int_surface,
- CASE WHEN access IN ('destination') THEN 'destination'::text
- WHEN access IN ('no', 'private') THEN 'no'::text
- END AS access,
+ carto_highway_int_access(highway, access, foot, bicycle, horse, tags->'motorcar', tags->'motor_vehicle', tags->'vehicle') AS int_access,
construction,
CASE
WHEN service IN ('parking_aisle', 'drive-through', 'driveway') OR leisure IN ('slipway') THEN 'INT-minor'::text
@@ -716,6 +701,7 @@ Layer:
WHEN highway IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') THEN 'yes'
ELSE 'no'
END AS link,
+ 'no' AS preserved,
COALESCE(layer,0) AS layernotnull,
osm_id,
z_order
@@ -727,13 +713,10 @@ Layer:
UNION ALL
SELECT
way,
- ('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'
- WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service'
- ELSE railway END)) AS feature,
- horse,
- foot,
- bicycle,
+ 'railway_' || (CASE
+ WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'
+ WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service'
+ ELSE railway END) AS feature,
tracktype,
CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', 'grass_paver', 'gravel', 'ground',
'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay', 'ice', 'snow') THEN 'unpaved'
@@ -741,13 +724,14 @@ Layer:
'concrete:plates', 'paving_stones', 'metal', 'wood', 'unhewn_cobblestone') THEN 'paved'
ELSE NULL
END AS int_surface,
- CASE
- WHEN access IN ('destination') THEN 'destination'::text
- WHEN access IN ('no', 'private') THEN 'no'::text
- END AS access,
+ NULL,
construction,
CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') OR leisure IN ('slipway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
'no' AS link,
+ (CASE
+ WHEN tags->'railway:preserved' = 'yes' THEN 'yes'
+ ELSE 'no'
+ END) AS preserved,
COALESCE(layer,0) AS layernotnull,
osm_id,
z_order
@@ -762,8 +746,8 @@ Layer:
layernotnull,
z_order,
CASE WHEN substring(feature for 8) = 'railway_' THEN 2 ELSE 1 END,
- CASE WHEN feature IN ('railway_INT-preserved-ssy', 'railway_INT-spur-siding-yard', 'railway_tram-service') THEN 0 ELSE 1 END,
- CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END,
+ CASE WHEN feature IN ('railway_INT-spur-siding-yard', 'railway_tram-service') THEN 0 ELSE 1 END,
+ CASE int_access WHEN 'no' THEN 0 WHEN 'restricted' THEN 1 ELSE 2 END,
CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 1 END,
osm_id
) AS roads_sql
@@ -860,8 +844,7 @@ Layer:
COALESCE(
('highway_' || (CASE WHEN highway IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link')
THEN substr(highway, 0, length(highway)-4) ELSE highway end)),
- ('railway_' || (CASE WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'
- WHEN railway IN ('rail', 'tram', 'light_rail', 'funicular', 'narrow_gauge') THEN railway END))
+ ('railway_' || railway)
) AS feature,
CASE WHEN tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes' THEN 'yes' ELSE 'no' END AS int_tunnel,
CASE WHEN highway IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') THEN 'yes' ELSE 'no' END AS link,
@@ -872,7 +855,8 @@ Layer:
END AS int_surface
FROM planet_osm_roads
WHERE highway IS NOT NULL
- OR (railway IS NOT NULL AND railway != 'preserved'
+ OR (railway IN ('rail', 'light_rail', 'funicular', 'narrow_gauge')
+ AND (tags->'railway:preserved' IS NULL OR tags->'railway:preserved' != 'yes')
AND (service IS NULL OR service NOT IN ('spur', 'siding', 'yard')))
ORDER BY
z_order
@@ -913,32 +897,25 @@ Layer:
(SELECT
way,
(CASE WHEN feature IN ('highway_motorway_link', 'highway_trunk_link', 'highway_primary_link', 'highway_secondary_link', 'highway_tertiary_link') THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
- horse,
- foot,
- bicycle,
tracktype,
int_surface,
- access,
+ int_access,
construction,
service,
link,
+ preserved,
layernotnull
FROM ( -- subselect that contains both roads and rail/aero
SELECT
way,
- 'highway_' || highway AS feature, --only motorway to tertiary links are accepted later on
- horse,
- foot,
- bicycle,
+ 'highway_' || (CASE WHEN highway = 'path' THEN carto_path_type(bicycle, horse) ELSE highway END) AS feature,
tracktype,
CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', 'grass_paver', 'gravel', 'ground',
'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay', 'ice', 'snow') THEN 'unpaved'
WHEN surface IN ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
'concrete:plates', 'paving_stones', 'metal', 'wood', 'unhewn_cobblestone') THEN 'paved'
END AS int_surface,
- CASE WHEN access IN ('destination') THEN 'destination'::text
- WHEN access IN ('no', 'private') THEN 'no'::text
- END AS access,
+ carto_highway_int_access(highway, access, foot, bicycle, horse, tags->'motorcar', tags->'motor_vehicle', tags->'vehicle') AS int_access,
construction,
CASE
WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text
@@ -948,6 +925,7 @@ Layer:
WHEN highway IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') THEN 'yes'
ELSE 'no'
END AS link,
+ 'no' AS preserved,
COALESCE(layer,0) AS layernotnull,
z_order
FROM planet_osm_line
@@ -956,22 +934,20 @@ Layer:
UNION ALL
SELECT
way,
- 'railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text
+ 'railway_' || (CASE
WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'
WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service'
ELSE railway END) AS feature,
- horse,
- foot,
- bicycle,
tracktype,
'null',
- CASE
- WHEN access IN ('destination') THEN 'destination'::text
- WHEN access IN ('no', 'private') THEN 'no'::text
- END AS access,
+ NULL,
construction,
CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
'no' AS link,
+ (CASE
+ WHEN tags->'railway:preserved' = 'yes' THEN 'yes'
+ ELSE 'no'
+ END) AS preserved,
COALESCE(layer,0) AS layernotnull,
z_order
FROM planet_osm_line
@@ -982,8 +958,8 @@ Layer:
layernotnull,
z_order,
CASE WHEN substring(feature for 8) = 'railway_' THEN 2 ELSE 1 END,
- CASE WHEN feature IN ('railway_INT-preserved-ssy', 'railway_INT-spur-siding-yard', 'railway_tram-service') THEN 0 ELSE 1 END,
- CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END,
+ CASE WHEN feature IN ('railway_INT-spur-siding-yard', 'railway_tram-service') THEN 0 ELSE 1 END,
+ CASE int_access WHEN 'no' THEN 0 WHEN 'restricted' THEN 1 ELSE 2 END,
CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 1 END
) AS bridges
properties:
@@ -1578,7 +1554,7 @@ Layer:
'advertising_' || CASE WHEN tags->'advertising' in ('column') THEN tags->'advertising' END,
'emergency_' || CASE WHEN tags->'emergency' IN ('phone') AND way_area IS NULL THEN tags->'emergency' END,
'shop' || CASE WHEN shop IN ('yes', 'no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE '' END,
- 'leisure_' || CASE WHEN leisure IN ('amusement_arcade', 'beach_resort', 'bird_hide', 'bowling_alley', 'dog_park', 'firepit', 'fishing',
+ 'leisure_' || CASE WHEN leisure IN ('amusement_arcade', 'beach_resort', 'bird_hide', 'bowling_alley', 'dance', 'dog_park', 'firepit', 'fishing',
'fitness_centre', 'fitness_station', 'garden', 'golf_course', 'ice_rink', 'marina', 'miniature_golf',
'outdoor_seating', 'park', 'picnic_table', 'pitch', 'playground',
'sauna', 'slipway', 'sports_centre', 'stadium', 'swimming_area', 'swimming_pool', 'track', 'water_park') THEN leisure END,
@@ -1592,7 +1568,7 @@ Layer:
'construction', 'salt_pond', 'military', 'plant_nursery') THEN landuse END,
'natural_' || CASE WHEN "natural" IN ('peak', 'volcano', 'saddle', 'cave_entrance') AND way_area IS NULL THEN "natural" END,
'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath',
- 'grassland', 'scrub', 'beach', 'glacier', 'tree', 'strait', 'cape')
+ 'grassland', 'scrub', 'beach', 'glacier', 'tree', 'strait', 'cape', 'reef')
THEN "natural" END,
'mountain_pass' || CASE WHEN tags->'mountain_pass' IN ('yes') THEN '' END, -- after natural=saddle to give priority to that tag on the same node
'waterway_' || CASE WHEN "waterway" IN ('waterfall') AND way_area IS NULL THEN waterway END,
@@ -1667,12 +1643,12 @@ Layer:
'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fabric', 'fishmonger', 'florist',
'garden_centre', 'hairdresser', 'hifi', 'car', 'car_repair', 'bicycle', 'mall', 'pet',
'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk',
- 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery',
+ 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'optician', 'jewelry',
'electronics', 'chemist', 'toys', 'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery',
'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor',
'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee', 'tyres', 'pastry', 'chocolate',
'music', 'medical_supply', 'dairy', 'video_games', 'houseware', 'ticket', 'charity', 'second_hand',
- 'interior_decoration', 'video', 'paint', 'massage', 'trade', 'wholesale') THEN shop
+ 'interior_decoration', 'video', 'paint', 'massage', 'trade', 'wholesale', 'hearing_aids') THEN shop
ELSE 'other' END AS shop,
CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building,
tags->'operator' AS operator,
@@ -1923,8 +1899,7 @@ Layer:
CASE
WHEN oneway IN ('yes', '-1') THEN oneway
WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
- END AS oneway,
- horse, bicycle
+ END AS oneway
FROM planet_osm_line l
WHERE highway IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary',
'tertiary_link', 'residential', 'unclassified', 'road', 'service', 'pedestrian', 'raceway', 'living_street', 'construction')
@@ -1949,15 +1924,13 @@ Layer:
table: |-
(SELECT
way,
- highway,
+ CASE WHEN highway = 'path' THEN carto_path_type(bicycle, horse) ELSE highway END AS highway,
construction,
name,
CASE
WHEN oneway IN ('yes', '-1') THEN oneway
WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
- END AS oneway,
- horse,
- bicycle
+ END AS oneway
FROM planet_osm_line
WHERE highway IN ('bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'construction')
AND (name IS NOT NULL
@@ -1975,17 +1948,22 @@ Layer:
table: |-
(SELECT
way,
- 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'
- WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service' ELSE railway END AS railway,
+ CASE
+ WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'
+ WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service'
+ ELSE railway
+ END AS railway,
CASE WHEN (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes') THEN 'yes' ELSE 'no' END AS tunnel,
tags->'highspeed' as highspeed,
tags->'usage' as usage,
construction,
- name
+ name,
+ (CASE
+ WHEN tags->'railway:preserved' = 'yes' THEN 'yes'
+ ELSE 'no'
+ END) AS preserved
FROM planet_osm_line l
- WHERE railway IN ('rail', 'subway', 'narrow_gauge', 'light_rail', 'preserved', 'funicular',
- 'monorail', 'miniature', 'tram', 'disused', 'construction')
+ WHERE railway IN ('rail', 'subway', 'narrow_gauge', 'light_rail', 'funicular', 'monorail', 'miniature', 'tram', 'disused', 'construction')
AND (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))
AND highway IS NULL -- Prevent duplicate rendering
AND name IS NOT NULL
=====================================
style/amenity-points.mss
=====================================
@@ -1090,6 +1090,10 @@
marker-file: url('symbols/shop/optician.svg');
}
+ [shop = 'hearing_aids'][zoom >= 18] {
+ marker-file: url('symbols/shop/hearing_aids.svg');
+ }
+
[shop = 'outdoor'][zoom >= 18] {
marker-file: url('symbols/shop/outdoor.svg');
}
@@ -1134,8 +1138,7 @@
}
}
- [shop = 'jewelry'],
- [shop = 'jewellery'] {
+ [shop = 'jewelry'] {
[zoom >= 18] {
marker-file: url('symbols/shop/jewelry.svg');
}
@@ -1338,6 +1341,12 @@
marker-clip: false;
}
+ [feature = 'leisure_dance'][zoom >= 17] {
+ marker-file: url('symbols/leisure/dance.svg');
+ marker-fill: @leisure-green;
+ marker-clip: false;
+ }
+
// Slipway tagging on points - slipway on lines is defined later
[feature = 'leisure_slipway'][zoom >= 17] {
marker-file: url('symbols/leisure/slipway.svg');
@@ -1357,10 +1366,10 @@
marker-fill: @airtransport;
}
- [feature = 'aeroway_aerodrome']['int_access' = 'yes']['icao' != null]['iata' != null][zoom >= 10][zoom < 17],
- [feature = 'aeroway_aerodrome']['int_access' = 'restricted'][zoom >= 12][zoom < 18],
- [feature = 'aeroway_aerodrome']['icao' = null][zoom >= 12][zoom < 18],
- [feature = 'aeroway_aerodrome']['iata' = null][zoom >= 12][zoom < 18] {
+ [feature = 'aeroway_aerodrome'][int_access = 'yes'][icao != null][iata != null][zoom >= 10][zoom < 17],
+ [feature = 'aeroway_aerodrome'][int_access = 'restricted'][zoom >= 12][zoom < 18],
+ [feature = 'aeroway_aerodrome'][icao = null][zoom >= 12][zoom < 18],
+ [feature = 'aeroway_aerodrome'][iata = null][zoom >= 12][zoom < 18] {
[way_pixels <= 192000],
[way_pixels = null] {
marker-file: url('symbols/amenity/aerodrome.svg');
@@ -1433,7 +1442,7 @@
marker-clip: false;
}
- [feature = 'power_generator']['generator:source' = 'wind'] {
+ [feature = 'power_generator']["generator:source" = 'wind'] {
[zoom >= 15][location != 'rooftop'][location != 'roof'],
[zoom >= 15][location = null],
[zoom >= 19] {
@@ -1717,7 +1726,8 @@
text-halo-fill: @standard-halo-fill;
}
- [feature = 'leisure_sauna'][zoom >= 17] {
+ [feature = 'leisure_sauna'][zoom >= 17],
+ [feature = 'leisure_dance'][zoom >= 17] {
text-name: "[name]";
text-size: @standard-font-size;
text-wrap-width: @standard-wrap-width;
@@ -1910,9 +1920,9 @@
}
}
- [feature = 'power_generator']['generator:source' = 'wind'][location != 'rooftop'][location != 'roof'][zoom >= 17],
- [feature = 'power_generator']['generator:source' = 'wind'][location = null][zoom >= 17],
- [feature = 'power_generator']['generator:source' = 'wind'][zoom >= 19],
+ [feature = 'power_generator']["generator:source" = 'wind'][location != 'rooftop'][location != 'roof'][zoom >= 17],
+ [feature = 'power_generator']["generator:source" = 'wind'][location = null][zoom >= 17],
+ [feature = 'power_generator']["generator:source" = 'wind'][zoom >= 19],
[feature = 'historic_city_gate'][zoom >= 17],
[feature = 'natural_cave_entrance'][zoom >= 15],
[feature = 'man_made_mast'][zoom >= 18],
@@ -1931,7 +1941,7 @@
text-wrap-width: @standard-wrap-width;
text-line-spacing: @standard-line-spacing-size;
text-fill: darken(@man-made-icon, 20%);
- [feature = 'power_generator']['generator:source' = 'wind'],
+ [feature = 'power_generator']["generator:source" = 'wind'],
[feature = 'historic_city_gate'],
[feature = 'man_made_mast'],
[feature = 'man_made_tower'],
@@ -2858,10 +2868,10 @@
text-halo-fill: @standard-halo-fill;
}
- [feature = 'aeroway_aerodrome']['int_access' = 'yes']['icao' != null]['iata' != null][zoom >= 11][zoom < 17],
- [feature = 'aeroway_aerodrome']['int_access' = 'restricted'][zoom >= 13][zoom < 18],
- [feature = 'aeroway_aerodrome']['icao' = null][zoom >= 13][zoom < 18],
- [feature = 'aeroway_aerodrome']['iata' = null][zoom >= 13][zoom < 18] {
+ [feature = 'aeroway_aerodrome'][int_access = 'yes'][icao != null][iata != null][zoom >= 11][zoom < 17],
+ [feature = 'aeroway_aerodrome'][int_access = 'restricted'][zoom >= 13][zoom < 18],
+ [feature = 'aeroway_aerodrome'][icao = null][zoom >= 13][zoom < 18],
+ [feature = 'aeroway_aerodrome'][iata = null][zoom >= 13][zoom < 18] {
[way_pixels <= 192000],
[way_pixels = null] {
text-name: "[name]";
=====================================
style/buildings.mss
=====================================
@@ -52,29 +52,29 @@
marker-width: 5.0;
marker-height: 5.0;
marker-opacity: 0.0;
- ["entrance" = "main"] {
+ ["entrance" = 'main'] {
marker-opacity: 1.0;
marker-file: url('symbols/square.svg');
}
}
[zoom >= 19]["entrance" != null] {
- ["entrance" = "yes"],
- ["entrance" = "main"],
- ["entrance" = "home"],
- ["entrance" = "service"],
- ["entrance" = "staircase"] {
+ ["entrance" = 'yes'],
+ ["entrance" = 'main'],
+ ["entrance" = 'home'],
+ ["entrance" = 'service'],
+ ["entrance" = 'staircase'] {
marker-opacity: 1.0;
marker-width: 6.0;
marker-height: 6.0;
- ["entrance" = "service"] {
+ ["entrance" = 'service'] {
marker-file: url('symbols/corners.svg');
}
}
- ["access" = "yes"],
- ["access" = "permissive"] {
+ ["access" = 'yes'],
+ ["access" = 'permissive'] {
marker-fill: @entrance-permissive;
}
- ["access" = "no"] {
+ ["access" = 'no'] {
marker-fill: @entrance-normal;
marker-file: url('symbols/rectdiag.svg');
}
=====================================
style/landcover.mss
=====================================
@@ -816,10 +816,10 @@
//Also landuse = forest, converted in the SQL
[natural = 'wood'][zoom >= 13]::wood {
polygon-pattern-file: url('symbols/leaftype_unknown.svg'); // Lch(55,30,135)
- [leaf_type = "broadleaved"] { polygon-pattern-file: url('symbols/leaftype_broadleaved.svg'); }
- [leaf_type = "needleleaved"] { polygon-pattern-file: url('symbols/leaftype_needleleaved.svg'); }
- [leaf_type = "mixed"] { polygon-pattern-file: url('symbols/leaftype_mixed.svg'); }
- [leaf_type = "leafless"] { polygon-pattern-file: url('symbols/leaftype_leafless.svg'); }
+ [leaf_type = 'broadleaved'] { polygon-pattern-file: url('symbols/leaftype_broadleaved.svg'); }
+ [leaf_type = 'needleleaved'] { polygon-pattern-file: url('symbols/leaftype_needleleaved.svg'); }
+ [leaf_type = 'mixed'] { polygon-pattern-file: url('symbols/leaftype_mixed.svg'); }
+ [leaf_type = 'leafless'] { polygon-pattern-file: url('symbols/leaftype_leafless.svg'); }
polygon-pattern-alignment: global;
opacity: 0.4; // The entire layer has opacity to handle overlapping forests
}
=====================================
style/roads.mss
=====================================
@@ -644,7 +644,7 @@
[feature = 'highway_steps'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @steps-width-z14 + 2 * (@paths-background-width + @paths-bridge-casing-width);
[zoom >= 15] { line-width: @steps-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); }
@@ -653,7 +653,7 @@
}
}
#tunnels {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @steps-width-z14 + 2 * (@paths-background-width + @paths-tunnel-casing-width);
[zoom >= 15] { line-width: @steps-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); }
@@ -663,10 +663,9 @@
}
}
- [feature = 'highway_bridleway'],
- [feature = 'highway_path'][horse = 'designated'] {
+ [feature = 'highway_bridleway'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_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); }
@@ -675,7 +674,7 @@
}
}
#tunnels {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
line-width: @bridleway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width);
[zoom >= 15] { line-width: @bridleway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); }
@@ -686,9 +685,9 @@
}
[feature = 'highway_footway'],
- [feature = 'highway_path'][bicycle != 'designated'][horse != 'designated'] {
+ [feature = 'highway_path'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @footway-width-z14 + 2 * (@paths-background-width + @paths-bridge-casing-width);
[zoom >= 15] { line-width: @footway-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); }
@@ -700,7 +699,7 @@
}
}
#tunnels {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @footway-width-z14 + 2 * (@paths-background-width + @paths-tunnel-casing-width);
[zoom >= 15] { line-width: @footway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); }
@@ -713,10 +712,9 @@
}
}
- [feature = 'highway_cycleway'],
- [feature = 'highway_path'][bicycle = 'designated'] {
+ [feature = 'highway_cycleway'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_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); }
@@ -728,7 +726,7 @@
}
}
#tunnels {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
line-width: @cycleway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width);
[zoom >= 15] { line-width: @cycleway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); }
@@ -743,7 +741,7 @@
[feature = 'highway_track'] {
#bridges {
- [zoom >= 13][access != 'no'] {
+ [zoom >= 13][int_access != 'no'] {
line-color: @bridge-casing;
line-join: round;
line-width: @track-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width);
@@ -767,7 +765,7 @@
}
}
#tunnels {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
line-color: @tunnel-casing;
line-dasharray: 4,2;
@@ -807,7 +805,7 @@
}
[feature = 'railway_subway'],
- [feature = 'railway_construction']['construction' = 'subway'] {
+ [feature = 'railway_construction'][construction = 'subway'] {
#bridges {
[zoom >= 14] {
line-width: 5.5;
@@ -830,7 +828,6 @@
}
[feature = 'railway_rail'],
- [feature = 'railway_preserved'],
[feature = 'railway_monorail'][zoom >= 14] {
#bridges {
[zoom >= 13] {
@@ -852,9 +849,8 @@
}
[feature = 'railway_disused'][zoom >= 15],
- [feature = 'railway_construction']['construction' != 'subway'],
- [feature = 'railway_miniature'][zoom >= 15],
- [feature = 'railway_INT-preserved-ssy'][zoom >= 14] {
+ [feature = 'railway_construction'][construction != 'subway'],
+ [feature = 'railway_miniature'][zoom >= 15] {
#bridges {
[zoom >= 13] {
line-width: 6;
@@ -867,10 +863,9 @@
}
::bridges_and_tunnels_background {
- [feature = 'highway_bridleway'],
- [feature = 'highway_path'][horse = 'designated'] {
+ [feature = 'highway_bridleway'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @bridleway-width-z13 + 2 * @paths-background-width;
[zoom >= 15] { line-width: @bridleway-width-z15 + 2 * @paths-background-width; }
@@ -879,7 +874,7 @@
}
}
#tunnels {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
line-color: @bridleway-casing;
line-cap: round;
@@ -891,9 +886,9 @@
}
[feature = 'highway_footway'],
- [feature = 'highway_path'][bicycle != 'designated'][horse != 'designated'] {
+ [feature = 'highway_path'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @footway-width-z14 + 2 * @paths-background-width;
[zoom >= 15] { line-width: @footway-width-z15 + 2 * @paths-background-width; }
@@ -905,7 +900,7 @@
}
}
#tunnels {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-color: @footway-casing;
line-cap: round;
@@ -919,10 +914,9 @@
}
}
- [feature = 'highway_cycleway'],
- [feature = 'highway_path'][bicycle = 'designated'] {
+ [feature = 'highway_cycleway'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @cycleway-width-z13 + 2 * @paths-background-width;
[zoom >= 15] { line-width: @cycleway-width-z15 + 2 * @paths-background-width; }
@@ -934,7 +928,7 @@
}
}
#tunnels {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
line-color: @cycleway-casing;
line-cap: round;
@@ -950,7 +944,7 @@
[feature = 'highway_steps'] {
#bridges {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-width: @steps-width-z14 + 2 * @paths-background-width;
[zoom >= 15] { line-width: @steps-width-z15 + 2 * @paths-background-width; }
@@ -959,7 +953,7 @@
}
}
#tunnels {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
line-color: @steps-casing;
line-cap: round;
@@ -973,7 +967,7 @@
[feature = 'highway_track'] {
/* We don't set opacity here, so it's 1.0. Aside from that, it's basically a copy of roads-fill::background in the track part of ::fill */
#bridges {
- [zoom >= 13][access != 'no'] {
+ [zoom >= 13][int_access != 'no'] {
line-color: @track-casing;
line-join: round;
line-width: @track-width-z13 + 2 * @paths-background-width;
@@ -997,7 +991,7 @@
}
}
#tunnels {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
line-color: @track-casing;
line-join: round;
@@ -1025,7 +1019,6 @@
}
[feature = 'railway_rail'][zoom >= 13],
- [feature = 'railway_preserved'][zoom >= 13],
[feature = 'railway_monorail'][zoom >= 14] {
#bridges {
line-width: 5;
@@ -1045,9 +1038,8 @@
}
[feature = 'railway_disused'][zoom >= 15],
- [feature = 'railway_construction']['construction' != 'subway'],
- [feature = 'railway_miniature'][zoom >= 15],
- [feature = 'railway_INT-preserved-ssy'][zoom >= 14] {
+ [feature = 'railway_construction'][construction != 'subway'],
+ [feature = 'railway_miniature'][zoom >= 15] {
#bridges {
[zoom >= 13] {
line-width: 4.5;
@@ -1071,7 +1063,7 @@
}
[feature = 'railway_subway'],
- [feature = 'railway_construction']['construction' = 'subway'] {
+ [feature = 'railway_construction'][construction = 'subway'] {
#bridges {
[zoom >= 14] {
line-width: 4;
@@ -2258,7 +2250,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[feature = 'highway_steps'] {
- [zoom >= 14][access != 'no'],
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
#roads-fill[zoom >= 15] {
background/line-color: @steps-casing;
@@ -2268,16 +2260,15 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
background/line-opacity: 0.4;
}
line/line-color: @steps-fill;
- [access = 'no'] { line/line-color: @steps-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @steps-fill-noaccess; }
line/line-dasharray: 2,1;
line/line-width: @steps-width-z14;
[zoom >= 15] { line/line-width: @steps-width-z15; }
}
}
- [feature = 'highway_bridleway'],
- [feature = 'highway_path'][horse = 'designated'] {
- [zoom >= 13][access != 'no'],
+ [feature = 'highway_bridleway'] {
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
#roads-fill[zoom >= 15] {
background/line-color: @bridleway-casing;
@@ -2287,7 +2278,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
background/line-opacity: 0.4;
}
line/line-color: @bridleway-fill;
- [access = 'no'] { line/line-color: @bridleway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @bridleway-fill-noaccess; }
line/line-dasharray: 4,2;
line/line-width: @bridleway-width-z13;
[zoom >= 15] { line/line-width: @bridleway-width-z15; }
@@ -2299,8 +2290,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[feature = 'highway_footway'],
- [feature = 'highway_path'][bicycle != 'designated'][horse != 'designated'] {
- [zoom >= 14][access != 'no'],
+ [feature = 'highway_path'] {
+ [zoom >= 14][int_access != 'no'],
[zoom >= 15] {
#roads-fill[zoom >= 15] {
background/line-color: @footway-casing;
@@ -2319,7 +2310,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
line/line-color: @footway-fill;
- [access = 'no'] { line/line-color: @footway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @footway-fill-noaccess; }
line/line-dasharray: 1,3;
line/line-join: round;
line/line-cap: round;
@@ -2343,7 +2334,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[zoom >= 15][int_surface = null] {
line/line-color: @footway-fill;
- [access = 'no'] { line/line-color: @footway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @footway-fill-noaccess; }
line/line-dasharray: 1,3,2,4;
line/line-join: round;
line/line-cap: round;
@@ -2361,7 +2352,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[zoom >= 15][int_surface = 'unpaved'] {
line/line-color: @footway-fill;
- [access = 'no'] { line/line-color: @footway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @footway-fill-noaccess; }
line/line-dasharray: 1,4;
line/line-join: round;
line/line-cap: round;
@@ -2379,9 +2370,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
- [feature = 'highway_cycleway'],
- [feature = 'highway_path'][bicycle = 'designated'] {
- [zoom >= 13][access != 'no'],
+ [feature = 'highway_cycleway'] {
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
#roads-fill[zoom >= 15] {
background/line-color: @cycleway-casing;
@@ -2400,7 +2390,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
line/line-color: @cycleway-fill;
- [access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
line/line-dasharray: 1,3;
line/line-join: round;
line/line-cap: round;
@@ -2424,7 +2414,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[zoom >= 15][int_surface = null] {
line/line-color: @cycleway-fill;
- [access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
line/line-dasharray: 1,3,2,4;
line/line-join: round;
line/line-cap: round;
@@ -2442,7 +2432,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[zoom >= 15][int_surface = 'unpaved'] {
line/line-color: @cycleway-fill;
- [access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
line/line-dasharray: 1,4;
line/line-join: round;
line/line-cap: round;
@@ -2461,7 +2451,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[feature = 'highway_track'] {
- [zoom >= 13][access != 'no'],
+ [zoom >= 13][int_access != 'no'],
[zoom >= 15] {
/* The white casing that you mainly see against forests and other dark features */
#roads-fill[zoom >= 15] {
@@ -2481,7 +2471,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
/* Set the properties of the brown inside */
line/line-color: @track-fill;
- [access = 'no'] { line/line-color: @track-fill-noaccess; }
+ [int_access = 'no'] { line/line-color: @track-fill-noaccess; }
line/line-dasharray: 5,4,2,4;
line/line-cap: round;
line/line-join: round;
@@ -2527,7 +2517,9 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
- [feature = 'railway_rail'][zoom >= 8],
+ [feature = 'railway_rail'][zoom >= 8][zoom < 10],
+ [feature = 'railway_rail'][preserved != 'yes'][zoom >= 10][zoom < 12],
+ [feature = 'railway_rail'][zoom >= 12],
[feature = 'railway_INT-spur-siding-yard'][zoom >= 13] {
[zoom < 13] {
line-color: #787878;
@@ -2553,7 +2545,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
dark/line-width: 3;
light/line-width: 1;
}
- [zoom >= 15] {
+ [zoom >= 15][preserved != 'yes'] {
light/line-dasharray: 0,8,8,1;
}
[zoom >= 18] {
@@ -2571,6 +2563,13 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
light/line-width: 1;
}
}
+ [preserved = 'yes'] {
+ dark/line-width: 3;
+ dark/line-color: #666;
+ light/line-width: 1;
+ light/line-color: white;
+ light/line-dasharray: 0,1,8,1;
+ }
}
#tunnels {
line-color: #787878;
@@ -2582,7 +2581,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
line-width: 1.9;
line-dasharray: 3,3;
[zoom >= 18] {
- line-width: 2.7;
+ line-width: 2.7;
}
}
[feature = 'railway_rail'][zoom >= 18] {
@@ -2596,12 +2595,24 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'railway_light_rail'],
[feature = 'railway_funicular'],
[feature = 'railway_narrow_gauge'] {
- [zoom >= 8] {
+ [zoom >= 8][zoom < 10],
+ [preserved != 'yes'][zoom >= 10][zoom < 12],
+ [zoom >= 12] {
line-color: #ccc;
[zoom >= 10] { line-color: #aaa; }
[zoom >= 13] { line-color: #666; }
line-width: 1;
[zoom >= 13] { line-width: 2; }
+ [preserved = 'yes'][zoom >= 13] {
+ #roads-fill, #bridges {
+ dark/line-width: 3;
+ dark/line-color: #999;
+ light/line-width: 1;
+ light/line-color: white;
+ light/line-dasharray: 0,1,8,1;
+ light/line-join: round;
+ }
+ }
#tunnels {
line-dasharray: 5,3;
}
@@ -2615,6 +2626,15 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
dashes/line-width: 3;
dashes/line-color: #999;
dashes/line-dasharray: 1,10;
+
+ [preserved = 'yes'] {
+ line/line-width: 3;
+ line/line-color: #bbb;
+ dashes/line-width: 1;
+ dashes/line-color: white;
+ dashes/line-dasharray: 0,1,8,1;
+ dashes/line-join: round;
+ }
}
}
@@ -2648,6 +2668,16 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
line-width: 2;
}
}
+ [preserved = 'yes'][zoom >= 15] {
+ #roads-fill, #bridges {
+ dark/line-width: 3;
+ dark/line-color: #999;
+ light/line-width: 1;
+ light/line-color: white;
+ light/line-dasharray: 0,1,8,1;
+ light/line-join: round;
+ }
+ }
#tunnels {
line-dasharray: 5,3;
}
@@ -2658,6 +2688,16 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[zoom >= 12] {
line-width: 2;
line-color: #999;
+ [preserved = 'yes'][zoom >= 15] {
+ #roads-fill, #bridges {
+ dark/line-width: 3;
+ dark/line-color: #999;
+ light/line-width: 1;
+ light/line-color: white;
+ light/line-dasharray: 0,1,8,1;
+ light/line-join: round;
+ }
+ }
#tunnels {
line-dasharray: 5,3;
}
@@ -2670,38 +2710,6 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
- [feature = 'railway_preserved'] {
- [zoom >= 12] {
- dark/line-width: 1.5;
- dark/line-color: #aaa;
- dark/line-join: round;
- [zoom >= 13] {
- dark/line-width: 3;
- dark/line-color: #999999;
- light/line-width: 1;
- light/line-color: white;
- light/line-dasharray: 0,1,8,1;
- light/line-join: round;
- }
- }
- }
-
- [feature = 'railway_INT-preserved-ssy'] {
- [zoom >= 12] {
- dark/line-width: 1;
- dark/line-color: #aaa;
- dark/line-join: round;
- [zoom >= 13] {
- dark/line-width: 2;
- dark/line-color: #999999;
- light/line-width: 0.8;
- light/line-color: white;
- light/line-dasharray: 0,1,8,1;
- light/line-join: round;
- }
- }
- }
-
[feature = 'railway_monorail'] {
[zoom >= 14] {
background/line-width: 4;
@@ -2714,6 +2722,16 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
line/line-dasharray: 2,3;
line/line-cap: round;
line/line-join: round;
+
+ [preserved = 'yes'] {
+ line/line-color: #999;
+ background/line-color: white;
+ background/line-dasharray: 0,1,8,1;
+ }
+
+ #tunnels {
+ line/line-dasharray: 3,4;
+ }
}
}
@@ -3378,7 +3396,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
#tunnels::fill,
#roads-fill::fill,
#bridges::fill {
- [access = 'destination'] {
+ [int_access = 'restricted'] {
[feature = 'highway_secondary'],
[feature = 'highway_tertiary'],
[feature = 'highway_unclassified'],
@@ -3441,7 +3459,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
}
- [access = 'no'] {
+ [int_access = 'no'] {
[feature = 'highway_motorway'],
[feature = 'highway_trunk'],
[feature = 'highway_primary'],
@@ -4152,18 +4170,10 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
text-upright: left;
text-dy: -3;
}
+ [highway = 'path'],
[highway = 'footway'] {
text-fill: @footway-oneway-arrow-color;
}
- [highway = 'path'] {
- text-fill: @footway-oneway-arrow-color;
- [horse = 'designated'] {
- text-fill: @bridleway-oneway-arrow-color;
- }
- [bicycle = 'designated'] {
- text-fill: @cycleway-oneway-arrow-color;
- }
- }
[highway = 'steps'] {
text-fill: @steps-oneway-arrow-color;
}
@@ -4187,7 +4197,6 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[railway = 'subway'],
[railway = 'narrow_gauge'],
[railway = 'light_rail'],
- [railway = 'preserved'],
[railway = 'funicular'],
[railway = 'monorail'],
[railway = 'tram'] {
@@ -4266,9 +4275,11 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
}
- /* Other minor railway styles. For service rails, see:
- https://github.com/gravitystorm/openstreetmap-carto/pull/2687 */
- [railway = 'preserved'],
+
+ /*
+ Other minor railway styles. For service rails, see:
+ https://github.com/gravitystorm/openstreetmap-carto/pull/2687
+ */
[railway = 'miniature'],
[railway = 'disused'],
[railway = 'construction'] {
=====================================
symbols/leisure/dance.svg
=====================================
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <path d="M9.5 0a1 1 0 0 0 0 2 1 1 0 0 0 0-2zm-5 2a.5.5 0 0 0-.22.95l2 1a.5.5 0 0 0 .57-.1l.78-.78.37.12v6.1l-1.85 1.85a.5.5 0 0 0 .7.7l2-2A.5.5 0 0 0 9 9.5V7.71l1.93 1.92-.9 2.7a.5.5 0 0 0 .31.64.5.5 0 0 0 .64-.32l1-3c.07-.23 0-.37-.12-.5L10 7.29V3.86l.14.05.89 1.85a.5.5 0 0 0 .68.23l2.02-1.05a.5.5 0 0 0 .22-.67.5.5 0 0 0-.68-.21l-1.56.8-.76-1.58a.5.5 0 0 0-.29-.26l-2.1-.69-.9-.3a.5.5 0 0 0-.51.11l-.75.75-1.67-.83A.5.5 0 0 0 4.5 2zM5 4.33 1 5.66V9a1 1 0 1 0 1 1V6.95l2-.67V8a1 1 0 1 0 1 1V4.33z"/>
+</svg>
=====================================
symbols/shop/hearing_aids.svg
=====================================
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <path d="m4.58513,2.8263c1.46072,-0.10333 3.13452,1.23444 3.63246,2.94008c0.49794,1.70564 -0.04394,3.40863 -0.66342,4.27188c-0.61948,0.86325 -1.33674,0.77076 -1.94384,1.21188c-0.60709,0.44112 -0.53931,1.8297 -1.50273,2.36063c-0.96343,0.53093 -2.82327,0.24927 -2.42665,-1.47846c0.39662,-1.72773 0.63357,-2.3001 -0.76858,-2.96611l0.51491,-0.72984c1.43113,0.08965 1.44162,0.87832 1.71334,1.57934c0.27172,0.70101 0.36715,1.51445 0.98562,1.051c0.30924,-0.23173 0.32183,-0.74699 0.63097,-0.96843c0.30914,-0.22143 0.91483,-0.14903 1.20458,-0.25906c0.57949,-0.22006 0.84928,-1.23319 0.6778,-3.40324c-0.17148,-2.17005 -1.62807,-2.25618 -2.39611,-2.20584c-0.76804,0.05034 -0.63737,0.58252 -1.4715,1.18749l-0.40457,-0.99381c0.9105,-0.69673 0.75702,-1.49416 2.21773,-1.59749l0,-0.00001l-0.00001,-0.00001z M4.34019,9.30065c-0.91236,0 -1.65137,-0.73901 -1.65137,-1.65137c0,-0.91236 0.73901,-1.65137 1.65137,-1.65137c0.91236,0 1.65137,0.73901 1.65137,1.65137c0,0.91236 -0.73901,1.65137 -1.65137,1.65137z M12.57809,0.02714c-1.7687,0.80156 -2.99609,2.63198 -2.99609,4.73828c0,2.1063 1.22749,3.96022 2.99609,4.76172l0,-1.22461c-1.1965,-0.7105 -1.96484,-2.07868 -1.96484,-3.60938c0,-1.5306 0.76829,-2.72504 1.96484,-3.43554l0,-1.23047z M13.49371,1.90885c-1.158,0.42876 -2,1.54921 -2,2.88281c0,1.3337 0.84197,2.46573 2,2.89453l0,-1.14453c-0.5974,-0.35456 -0.92773,-1.02046 -0.92773,-1.78516c0,-0.76479 0.33033,-1.34081 0.92773,-1.69531l0,-1.15234z M9.36082,0.55115l-0.96154,2.37629l-4.84258,-0.8755c-1.08525,0.31007 -1.84219,1.08525 -1.83307,2.16138c0.07296,1.04877 0.61102,1.74187 1.31324,2.62649l-0.30095,0.95757c-1.25852,-1.21293 -1.86043,-2.50793 -1.77835,-3.83029c0.20975,-1.58684 1.15821,-2.0793 2.43497,-2.70856l0.38303,-1.01229" />
+</svg>
View it on GitLab: https://salsa.debian.org/debian-gis-team/openstreetmap-carto/-/commit/ee95d6c1cad9d792eed7ad4fce26be04ba697bd5
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/openstreetmap-carto/-/commit/ee95d6c1cad9d792eed7ad4fce26be04ba697bd5
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20241017/25fe7063/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list