diff --git a/amenity-points.mss b/amenity-points.mss index e02247a1c5..88c4c38bff 100644 --- a/amenity-points.mss +++ b/amenity-points.mss @@ -4,7 +4,7 @@ @shop-text: #939; @transportation-icon: #0092da; @transportation-text: #0066ff; -@airtransport: #8461C4; +@airtransport: #8461C4; //also ferry_terminal @health-color: #da0092; @amenity-brown: #734a08; @man-made-icon: #555; @@ -902,6 +902,13 @@ marker-fill: @airtransport; } + [feature = 'amenity_ferry_terminal'][zoom >= 15] { + marker-file: url('symbols/ferry.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @airtransport; + } + [feature = 'man_made_lighthouse'][zoom >= 15] { marker-file: url('symbols/lighthouse.svg'); marker-placement: interior; @@ -2047,7 +2054,8 @@ } [feature = 'aeroway_aerodrome']['access' != 'private']['icao' != null]['iata' != null][zoom >= 10][zoom < 14], - [feature = 'aeroway_aerodrome'][zoom >= 11][zoom < 14] { + [feature = 'aeroway_aerodrome'][zoom >= 11][zoom < 14], + [feature = 'amenity_ferry_terminal'][zoom >= 15] { text-name: "[name]"; text-size: @standard-text-size; text-fill: darken(@airtransport, 15%); diff --git a/landcover.mss b/landcover.mss index bdffb98f1f..b0a60457cf 100644 --- a/landcover.mss +++ b/landcover.mss @@ -536,7 +536,8 @@ [way_pixels >= 64] { polygon-gamma: 0.3; } } - [feature = 'aeroway_aerodrome'][zoom >= 10] { + [feature = 'aeroway_aerodrome'][zoom >= 10], + [feature = 'amenity_ferry_terminal'][zoom >= 15] { polygon-fill: @aerodrome; line-width: 0.2; line-color: saturate(darken(@aerodrome, 40%), 20%); diff --git a/project.mml b/project.mml index 4e981f1553..8402a5fb50 100644 --- a/project.mml +++ b/project.mml @@ -129,7 +129,7 @@ Layer: way, COALESCE(name, '') AS name, ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway ELSE NULL END)) AS aeroway, ('amenity_' || (CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'university', 'college', 'school', - 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic') + 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic', 'ferry_terminal') THEN amenity ELSE NULL END)) AS amenity, ('landuse_' || (CASE WHEN landuse IN ('quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture', @@ -152,7 +152,7 @@ Layer: OR leisure IS NOT NULL OR aeroway IN ('apron', 'aerodrome') OR amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', - 'grave_yard', 'place_of_worship', 'prison', 'clinic') + 'grave_yard', 'place_of_worship', 'prison', 'clinic', 'ferry_terminal') OR military IN ('danger_area') OR "natural" IN ('beach', 'shoal', 'heath', 'mud', 'marsh', 'wetland', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') OR power IN ('station', 'sub_station', 'substation', 'generator') @@ -1566,7 +1566,7 @@ Layer: 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, + 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, 'shop' || CASE WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE '' END, 'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table') THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'obelisk') THEN man_made ELSE NULL END, @@ -1605,7 +1605,7 @@ Layer: 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 'veterinary', - 'social_facility', 'charging_station', 'arts_centre') + 'social_facility', 'charging_station', 'arts_centre', 'ferry_terminal') OR shop IS NOT NULL -- skip checking a huge list and use a null check OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table') OR man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'obelisk') @@ -1637,7 +1637,7 @@ Layer: 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, + 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, 'shop' || CASE WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE '' END, 'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway', 'dog_park') THEN leisure ELSE NULL END, @@ -1687,7 +1687,7 @@ Layer: 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', - 'veterinary', 'social_facility', 'charging_station', 'arts_centre') + 'veterinary', 'social_facility', 'charging_station', 'arts_centre', 'ferry_terminal') OR shop IS NOT NULL -- skip checking a huge list and use a null check OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway', 'dog_park') @@ -2010,7 +2010,7 @@ Layer: 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_wash', 'post_box', 'post_office', 'recycling', 'telephone', 'emergency_phone', 'toilets', 'taxi', 'drinking_water', 'hunting_stand', - 'nightclub', 'veterinary', 'social_facility', 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, + 'nightclub', 'veterinary', 'social_facility', 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, 'shop_' || CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', @@ -2140,7 +2140,7 @@ Layer: 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_wash', 'post_box', 'post_office', 'recycling', 'telephone', 'emergency_phone', 'toilets', 'taxi', 'drinking_water', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, + 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, 'shop_' || CASE WHEN shop IN ('supermarket', 'bag','bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', diff --git a/symbols/ferry.svg b/symbols/ferry.svg new file mode 100644 index 0000000000..feba820df3 --- /dev/null +++ b/symbols/ferry.svg @@ -0,0 +1,43 @@ + + + + + + image/svg+xml + + + + + + + + + + +