diff --git a/amenity-points.mss b/amenity-points.mss index ccd353531c..c87d907aad 100644 --- a/amenity-points.mss +++ b/amenity-points.mss @@ -588,6 +588,14 @@ marker-clip: false; } + [feature = 'amenity_marketplace'][zoom >= 16][way_pixels > 3000], + [feature = 'amenity_marketplace'][zoom >= 17] { + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + marker-file: url('symbols/shop/marketplace.svg'); + } + [feature = 'shop'] { [shop != 'mall'][zoom >= 17], [shop = 'supermarket'][zoom >= 16], @@ -1247,6 +1255,20 @@ text-placement: interior; } + [feature = 'amenity_marketplace'][zoom >= 16][way_pixels > 3000], + [feature = 'amenity_marketplace'][zoom >= 17] { + text-name: "[name]"; + text-size: @standard-font-size; + text-wrap-width: @standard-wrap-width; + text-line-spacing: @standard-line-spacing-size; + text-dy: 12; + text-fill: @shop-text; + text-face-name: @standard-font; + text-halo-radius: @standard-halo-radius; + text-halo-fill: rgba(255, 255, 255, 0.6); + text-placement: interior; + } + [feature = 'natural_peak'][zoom >= 13], [feature = 'natural_volcano'][zoom >= 13], [feature = 'natural_saddle'][zoom >= 15], diff --git a/landcover.mss b/landcover.mss index 8c6caf1d43..3c6a0e0565 100644 --- a/landcover.mss +++ b/landcover.mss @@ -342,18 +342,21 @@ } } - [feature = 'landuse_retail'][zoom >= 10] { - polygon-fill: @built-up-lower-lowzoom; - [zoom >= 11] { polygon-fill: @built-up-upper-lowzoom; } - [zoom >= 13] { polygon-fill: @retail; } - [zoom >= 16] { - line-width: 0.5; - line-color: @retail-line; - [name != ''] { - line-width: 0.7; + [feature = 'landuse_retail'], + [feature = 'amenity_marketplace'] { + [zoom >= 10] { + polygon-fill: @built-up-lower-lowzoom; + [zoom >= 11] { polygon-fill: @built-up-upper-lowzoom; } + [zoom >= 13] { polygon-fill: @retail; } + [zoom >= 16] { + line-width: 0.5; + line-color: @retail-line; + [name != ''] { + line-width: 0.7; + } + [way_pixels >= 4] { polygon-gamma: 0.75; } + [way_pixels >= 64] { polygon-gamma: 0.3; } } - [way_pixels >= 4] { polygon-gamma: 0.75; } - [way_pixels >= 64] { polygon-gamma: 0.3; } } } diff --git a/project.mml b/project.mml index 89f31631d3..04f1464afe 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', 'ferry_terminal') + 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic', 'ferry_terminal', 'marketplace') 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', @@ -153,7 +153,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', 'ferry_terminal') + 'grave_yard', 'place_of_worship', 'prison', 'clinic', 'ferry_terminal', 'marketplace') OR man_made IN ('works') OR military IN ('danger_area') OR "natural" IN ('beach', 'shoal', 'heath', 'mud', 'marsh', 'wetland', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') @@ -1409,7 +1409,7 @@ Layer: 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, + 'charging_station', 'arts_centre', 'ferry_terminal', 'marketplace') 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, @@ -1495,7 +1495,7 @@ Layer: 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, + 'charging_station', 'arts_centre', 'ferry_terminal', 'marketplace') THEN amenity ELSE NULL END, 'emergency_' || CASE WHEN tags->'emergency' IN ('phone') THEN tags->'emergency' 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', @@ -1911,7 +1911,7 @@ Layer: 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_wash', 'post_box', 'post_office', 'recycling', 'telephone', 'toilets', 'taxi', 'drinking_water', 'hunting_stand', - 'nightclub', 'veterinary', 'social_facility', 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, + 'nightclub', 'veterinary', 'social_facility', 'charging_station', 'arts_centre', 'ferry_terminal', 'marketplace') 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', @@ -2044,7 +2044,7 @@ Layer: 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_wash', 'post_box', 'post_office', 'recycling', 'telephone', 'toilets', 'taxi', 'drinking_water', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre', 'ferry_terminal') THEN amenity ELSE NULL END, + 'charging_station', 'arts_centre', 'ferry_terminal', 'marketplace') 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/shop/marketplace.svg b/symbols/shop/marketplace.svg new file mode 100644 index 0000000000..c17d012680 --- /dev/null +++ b/symbols/shop/marketplace.svg @@ -0,0 +1,42 @@ + + + + + + image/svg+xml + + + + + + + + + +