From 5e60bb78dff4e07b55a556b9037ca28430ac38b2 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Tue, 20 Apr 2021 16:39:34 -0500 Subject: [PATCH 1/9] Update leisure=golf_course and render golf=* features (gravitystorm#661) - Change leisure=golf_course/miniature_golf_course to @campsite, eliminating @golf_course color - Update landcover layer to include golf area features - Update amenity-points layer to include golf point features - Add golf-line layer - Add style/golf.mss and specify rendering for: - golf=tee/fairway/driving_range (@grass, z>=12) - golf=green (@pitch, z>=13) - golf=bunker (@sand, z>=13) - golf=rough (@grass, z>=12; with texture, z>=15) - golf=hole as way (solid @leisure-green line, labeled with ref, z>=16) - golf=hole as point and golf=pin (symbols/golf_pin.svg; labeled with ref in @leisure-green, z>=16) --- project.mml | 28 +++++++++++++++---- style/golf.mss | 62 ++++++++++++++++++++++++++++++++++++++++++ style/landcover.mss | 5 ++-- symbols/golf_pin.svg | 9 ++++++ symbols/golf_rough.svg | 9 ++++++ 5 files changed, 105 insertions(+), 8 deletions(-) create mode 100644 style/golf.mss create mode 100644 symbols/golf_pin.svg create mode 100644 symbols/golf_rough.svg diff --git a/project.mml b/project.mml index 22869c1979..47fa0d3110 100644 --- a/project.mml +++ b/project.mml @@ -49,6 +49,7 @@ Stylesheet: - style/aerialways.mss - style/admin.mss - style/addressing.mss + - style/golf.mss Layer: - id: landcover-low-zoom geometry: polygon @@ -87,10 +88,11 @@ Layer: table: |- (SELECT way, name, religion, way_pixels, is_building, - COALESCE(aeroway, amenity, wetland, power, landuse, leisure, man_made, "natural", shop, tourism, highway, railway) AS feature + COALESCE(aeroway, golf, amenity, wetland, power, landuse, leisure, man_made, "natural", shop, tourism, highway, railway) AS feature FROM (SELECT way, COALESCE(name, '') AS name, ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway END)) AS aeroway, + ('golf_' || (CASE WHEN (tags->'golf') IN ('rough', 'fairway', 'driving_range', 'water_hazard', 'green', 'bunker', 'tee') THEN tags->'golf' ELSE NULL END)) AS golf, ('amenity_' || (CASE WHEN amenity IN ('bicycle_parking', 'motorcycle_parking', 'university', 'college', 'school', 'taxi', 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic', 'ferry_terminal', 'marketplace', 'community_centre', 'social_facility', 'arts_centre', 'parking_space', 'bus_station', @@ -119,6 +121,7 @@ Layer: WHERE (landuse IS NOT NULL OR leisure IS NOT NULL OR aeroway IN ('apron', 'aerodrome') + OR (tags->'golf') IS NOT NULL OR amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'taxi', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'place_of_worship', 'prison', 'clinic', 'ferry_terminal', 'marketplace', 'community_centre', 'social_facility', 'arts_centre', 'parking_space', 'bus_station', 'fire_station', 'police') @@ -1044,6 +1047,19 @@ Layer: properties: cache-features: true minzoom: 11 + - id: golf-line + geometry: linestring + <<: *extents + Datasource: + <<: *osm2pgsql + table: |- + (SELECT + way, tags->'golf' AS golf, ref, name + FROM planet_osm_line + WHERE tags->'golf' = 'hole' AND way && !bbox! + ) AS golf_line + properties: + minzoom: 16 - id: necountries geometry: linestring <<: *extents @@ -1536,7 +1552,8 @@ Layer: AND way_area IS NULL THEN amenity END, 'tourism_' || CASE WHEN tourism IN ('viewpoint', 'attraction') THEN tourism END, - 'place_' || CASE WHEN place IN ('locality') AND way_area IS NULL THEN place END + 'place_' || CASE WHEN place IN ('locality') AND way_area IS NULL THEN place END, + 'golf_' || CASE WHEN tags->'golf' IN ('hole', 'pin') THEN tags->'golf' END ) AS feature, access, CASE @@ -2007,7 +2024,7 @@ Layer: (SELECT way, NULL as way_pixels, - COALESCE('aerialway_' || aerialway, 'attraction_' || CASE WHEN tags @> 'attraction=>water_slide' THEN 'water_slide' END, 'leisure_' || leisure, 'man_made_' || man_made, 'waterway_' || waterway, 'natural_' || "natural") AS feature, + COALESCE('aerialway_' || aerialway, 'attraction_' || CASE WHEN tags @> 'attraction=>water_slide' THEN 'water_slide' END, 'leisure_' || leisure, 'man_made_' || man_made, 'waterway_' || waterway, 'natural_' || "natural", CASE WHEN tags @> 'golf=>hole' THEN 'golf_hole' END) AS feature, access, name, tags->'operator' as operator, @@ -2015,7 +2032,7 @@ Layer: NULL AS way_area, CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building FROM planet_osm_line - WHERE (man_made IN ('pier', 'breakwater', 'groyne', 'embankment') + WHERE ((man_made IN ('pier', 'breakwater', 'groyne', 'embankment') OR (man_made = 'pipeline' AND tags-> 'location' IN ('overground', 'overhead', 'surface', 'outdoor') OR bridge IN ('yes', 'aqueduct', 'cantilever', 'covered', 'trestle', 'viaduct')) @@ -2024,7 +2041,8 @@ Layer: OR leisure IN ('slipway', 'track') OR waterway IN ('dam', 'weir') OR "natural" IN ('arete', 'cliff', 'ridge')) - AND name IS NOT NULL + AND name IS NOT NULL) + OR tags @> 'golf=>hole' ) AS text_line properties: minzoom: 10 diff --git a/style/golf.mss b/style/golf.mss new file mode 100644 index 0000000000..cbec3a3cc9 --- /dev/null +++ b/style/golf.mss @@ -0,0 +1,62 @@ +#landcover[zoom >= 12] { + ::high-zoom[zoom >= 12] { + [feature = 'golf_tee'], + [feature = 'golf_fairway'], + [feature = 'golf_rough'], + [feature = 'golf_driving_range'] { + polygon-fill: @grass; + } + } + ::high-zoom[zoom >= 13] { + [feature = 'golf_green'] { + polygon-fill: @pitch; + } + [feature = 'golf_bunker'] { + polygon-fill: @sand; + } + } + ::high-zoom[zoom >= 15] { + [feature = 'golf_rough'] { + polygon-pattern-file: url('symbols/golf_rough.svg'); + polygon-pattern-opacity: 0.2; + } + } +} + +#golf-line[zoom >= 16] { + [golf = 'hole'] { + line-color: @leisure-green; + line-width: 0.5; + } +} + +#text-line[zoom >= 16] { + [feature = 'golf_hole'][ref != ''] { + text-placement: line; + text-name: "[ref]"; + text-size: 11; + text-fill: @leisure-green; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-halo-fill: fadeout(white, 30%); + [zoom >= 17] { + text-size: 13; + } + } +} + +#amenity-points[zoom >= 16] { + [feature = 'golf_hole'], + [feature = 'golf_pin'] { + marker-file: url('symbols/golf_pin.svg'); + marker-fill: @leisure-green; + [ref != ''] { + text-fill: #444; + text-name: "[ref]"; + text-face-name: @book-fonts; + text-dy: -10; + text-halo-radius: 1.5; + text-halo-fill: fadeout(white, 30%); + } + } +} diff --git a/style/landcover.mss b/style/landcover.mss index e85f9c05a2..f06116bdb5 100644 --- a/style/landcover.mss +++ b/style/landcover.mss @@ -40,7 +40,7 @@ // --- Other ---- @bare_ground: #eee5dc; -@campsite: #def6c0; // also caravan_site, picnic_site +@campsite: #def6c0; // also caravan_site, picnic_site, golf_course @cemetery: #aacbaf; // also grave_yard @construction: #c7c7b4; // also brownfield @heath: #d6d99f; @@ -66,7 +66,6 @@ @pitch: #aae0cb; // Lch(85,22,168) also track @track: @pitch; @stadium: @leisure; // also sports_centre -@golf_course: #b5e3b5; #landcover-low-zoom[zoom < 10], #landcover[zoom >= 10] { @@ -277,7 +276,7 @@ [feature = 'leisure_golf_course'][zoom >= 10], [feature = 'leisure_miniature_golf'][zoom >= 15] { - polygon-fill: @golf_course; + polygon-fill: @campsite; [way_pixels >= 4] { polygon-gamma: 0.75; } [way_pixels >= 64] { polygon-gamma: 0.3; } } diff --git a/symbols/golf_pin.svg b/symbols/golf_pin.svg new file mode 100644 index 0000000000..c211e38198 --- /dev/null +++ b/symbols/golf_pin.svg @@ -0,0 +1,9 @@ + + + + diff --git a/symbols/golf_rough.svg b/symbols/golf_rough.svg new file mode 100644 index 0000000000..b27d77bca3 --- /dev/null +++ b/symbols/golf_rough.svg @@ -0,0 +1,9 @@ + + + + From dbea252767d6f93c29827416743e3bdad55c2f29 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Thu, 22 Apr 2021 17:59:06 -0500 Subject: [PATCH 2/9] Address review issues, increase golf pin marker on closer zoom levels - Adjust rough color to be lighter - Change golf-lines colors to be @admin-boundaries - Modify golf_pin.svg with invisible bounding box to work around mapnik#1122 - Remove explicit bbox condition in SQL - Leave @golf_course variable defined --- project.mml | 2 +- style/golf.mss | 12 ++++++++---- style/landcover.mss | 5 +++-- symbols/golf_pin.svg | 2 ++ symbols/golf_rough.svg | 10 +++++----- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/project.mml b/project.mml index 47fa0d3110..1622dd0d2a 100644 --- a/project.mml +++ b/project.mml @@ -1056,7 +1056,7 @@ Layer: (SELECT way, tags->'golf' AS golf, ref, name FROM planet_osm_line - WHERE tags->'golf' = 'hole' AND way && !bbox! + WHERE tags->'golf' = 'hole' ) AS golf_line properties: minzoom: 16 diff --git a/style/golf.mss b/style/golf.mss index cbec3a3cc9..c9a4a2cd94 100644 --- a/style/golf.mss +++ b/style/golf.mss @@ -18,14 +18,14 @@ ::high-zoom[zoom >= 15] { [feature = 'golf_rough'] { polygon-pattern-file: url('symbols/golf_rough.svg'); - polygon-pattern-opacity: 0.2; + polygon-pattern-comp-op: soft-light; } } } #golf-line[zoom >= 16] { [golf = 'hole'] { - line-color: @leisure-green; + line-color: @admin-boundaries; line-width: 0.5; } } @@ -35,7 +35,7 @@ text-placement: line; text-name: "[ref]"; text-size: 11; - text-fill: @leisure-green; + text-fill: @admin-boundaries; text-face-name: @book-fonts; text-halo-radius: 1.5; text-halo-fill: fadeout(white, 30%); @@ -49,7 +49,7 @@ [feature = 'golf_hole'], [feature = 'golf_pin'] { marker-file: url('symbols/golf_pin.svg'); - marker-fill: @leisure-green; + marker-fill: @admin-boundaries; [ref != ''] { text-fill: #444; text-name: "[ref]"; @@ -59,4 +59,8 @@ text-halo-fill: fadeout(white, 30%); } } + [zoom >= 17][feature = 'golf_hole'], + [zoom >= 17][feature = 'golf_pin'] { + marker-transform: scale(1.5, 1.5); + } } diff --git a/style/landcover.mss b/style/landcover.mss index f06116bdb5..449404e1a5 100644 --- a/style/landcover.mss +++ b/style/landcover.mss @@ -40,7 +40,7 @@ // --- Other ---- @bare_ground: #eee5dc; -@campsite: #def6c0; // also caravan_site, picnic_site, golf_course +@campsite: #def6c0; // also caravan_site, picnic_site @cemetery: #aacbaf; // also grave_yard @construction: #c7c7b4; // also brownfield @heath: #d6d99f; @@ -66,6 +66,7 @@ @pitch: #aae0cb; // Lch(85,22,168) also track @track: @pitch; @stadium: @leisure; // also sports_centre +@golf_course: @campsite; #landcover-low-zoom[zoom < 10], #landcover[zoom >= 10] { @@ -276,7 +277,7 @@ [feature = 'leisure_golf_course'][zoom >= 10], [feature = 'leisure_miniature_golf'][zoom >= 15] { - polygon-fill: @campsite; + polygon-fill: @golf_course; [way_pixels >= 4] { polygon-gamma: 0.75; } [way_pixels >= 64] { polygon-gamma: 0.3; } } diff --git a/symbols/golf_pin.svg b/symbols/golf_pin.svg index c211e38198..32758e6f4e 100644 --- a/symbols/golf_pin.svg +++ b/symbols/golf_pin.svg @@ -6,4 +6,6 @@ width="9" height="23"> + + diff --git a/symbols/golf_rough.svg b/symbols/golf_rough.svg index b27d77bca3..708bf8c9e3 100644 --- a/symbols/golf_rough.svg +++ b/symbols/golf_rough.svg @@ -1,9 +1,9 @@ - + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + width="40" + height="40"> + From 1fff99a525dd01c18fab5c6e9d7d80e451507507 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Fri, 30 Apr 2021 15:52:29 -0500 Subject: [PATCH 3/9] Label golf=hole lines with name when available, use translate() to shift pin SVG instead of changing SVG file, make sure golf=pin ref label actually renders --- style/golf.mss | 42 ++++++++++++++++++++++++++---------------- symbols/golf_pin.svg | 4 +--- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/style/golf.mss b/style/golf.mss index c9a4a2cd94..0c67d336ff 100644 --- a/style/golf.mss +++ b/style/golf.mss @@ -31,17 +31,20 @@ } #text-line[zoom >= 16] { - [feature = 'golf_hole'][ref != ''] { + [feature = 'golf_hole'][ref != ''], + [feature = 'golf_hole'][name != ''] { text-placement: line; - text-name: "[ref]"; text-size: 11; text-fill: @admin-boundaries; text-face-name: @book-fonts; - text-halo-radius: 1.5; - text-halo-fill: fadeout(white, 30%); - [zoom >= 17] { - text-size: 13; - } + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-name: ""; + + [ref != ''] { text-name: "[ref]"; } + [name != ''] { text-name: "[name]"; } + + [zoom >= 17] { text-size: 13; } } } @@ -50,17 +53,24 @@ [feature = 'golf_pin'] { marker-file: url('symbols/golf_pin.svg'); marker-fill: @admin-boundaries; - [ref != ''] { - text-fill: #444; - text-name: "[ref]"; - text-face-name: @book-fonts; - text-dy: -10; - text-halo-radius: 1.5; - text-halo-fill: fadeout(white, 30%); - } + marker-transform: translate(2, -5); } [zoom >= 17][feature = 'golf_hole'], [zoom >= 17][feature = 'golf_pin'] { - marker-transform: scale(1.5, 1.5); + marker-transform: "scale(1.5) translate(2, -5)"; + } +} + +#text-point[zoom >= 17] { + [feature = 'golf_pin'][ref != ''] { + text-name: "[ref]"; + text-size: @standard-font-size; + text-fill: @admin-boundaries; + text-face-name: @book-fonts; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-horizontal-alignment: middle; + text-dx: 1; + text-dy: 6; } } diff --git a/symbols/golf_pin.svg b/symbols/golf_pin.svg index 32758e6f4e..ddc0919dba 100644 --- a/symbols/golf_pin.svg +++ b/symbols/golf_pin.svg @@ -4,8 +4,6 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="9" - height="23"> + height="13"> - - From aa9b06974677479a3f1e6b4d50763b9f143b0db9 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Sun, 2 May 2021 17:47:02 -0500 Subject: [PATCH 4/9] Use @address-color for golf=hole lines, labels, and markers --- style/golf.mss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/style/golf.mss b/style/golf.mss index 0c67d336ff..eef8e77085 100644 --- a/style/golf.mss +++ b/style/golf.mss @@ -25,7 +25,7 @@ #golf-line[zoom >= 16] { [golf = 'hole'] { - line-color: @admin-boundaries; + line-color: @address-color; line-width: 0.5; } } @@ -35,7 +35,7 @@ [feature = 'golf_hole'][name != ''] { text-placement: line; text-size: 11; - text-fill: @admin-boundaries; + text-fill: @address-color; text-face-name: @book-fonts; text-halo-radius: @standard-halo-radius; text-halo-fill: @standard-halo-fill; @@ -52,7 +52,7 @@ [feature = 'golf_hole'], [feature = 'golf_pin'] { marker-file: url('symbols/golf_pin.svg'); - marker-fill: @admin-boundaries; + marker-fill: @address-color; marker-transform: translate(2, -5); } [zoom >= 17][feature = 'golf_hole'], @@ -65,7 +65,7 @@ [feature = 'golf_pin'][ref != ''] { text-name: "[ref]"; text-size: @standard-font-size; - text-fill: @admin-boundaries; + text-fill: @address-color; text-face-name: @book-fonts; text-halo-radius: @standard-halo-radius; text-halo-fill: @standard-halo-fill; From 75e5322ff902237ab84d2bd5b887bef597fc4e2f Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Mon, 30 Aug 2021 18:41:20 -0500 Subject: [PATCH 5/9] Address review comments * Use consistent JSON operator * Remove scaled-up marker * Use marker-geometry-transform instead of marker-transform for offset * Set default text label to eliminate extra rule --- project.mml | 2 +- style/golf.mss | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/project.mml b/project.mml index 1622dd0d2a..84f0948d2e 100644 --- a/project.mml +++ b/project.mml @@ -1056,7 +1056,7 @@ Layer: (SELECT way, tags->'golf' AS golf, ref, name FROM planet_osm_line - WHERE tags->'golf' = 'hole' + WHERE tags @> 'golf=>hole' ) AS golf_line properties: minzoom: 16 diff --git a/style/golf.mss b/style/golf.mss index eef8e77085..caf2c17df8 100644 --- a/style/golf.mss +++ b/style/golf.mss @@ -39,9 +39,8 @@ text-face-name: @book-fonts; text-halo-radius: @standard-halo-radius; text-halo-fill: @standard-halo-fill; - text-name: ""; + text-name: "[ref]"; - [ref != ''] { text-name: "[ref]"; } [name != ''] { text-name: "[name]"; } [zoom >= 17] { text-size: 13; } @@ -53,11 +52,7 @@ [feature = 'golf_pin'] { marker-file: url('symbols/golf_pin.svg'); marker-fill: @address-color; - marker-transform: translate(2, -5); - } - [zoom >= 17][feature = 'golf_hole'], - [zoom >= 17][feature = 'golf_pin'] { - marker-transform: "scale(1.5) translate(2, -5)"; + marker-geometry-transform: translate(2, -5); } } From d7cd4d9581cb1db7034a875aba01b546fc32dced Mon Sep 17 00:00:00 2001 From: Paul Dicker Date: Wed, 1 Sep 2021 13:03:51 +0200 Subject: [PATCH 6/9] Use invisible rectangle to center golf_pin.svg --- style/golf.mss | 4 ++-- symbols/golf_pin.svg | 9 --------- symbols/leisure/golf_pin.svg | 5 +++++ 3 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 symbols/golf_pin.svg create mode 100644 symbols/leisure/golf_pin.svg diff --git a/style/golf.mss b/style/golf.mss index caf2c17df8..ac43ef69a1 100644 --- a/style/golf.mss +++ b/style/golf.mss @@ -50,9 +50,9 @@ #amenity-points[zoom >= 16] { [feature = 'golf_hole'], [feature = 'golf_pin'] { - marker-file: url('symbols/golf_pin.svg'); + marker-file: url('symbols/leisure/golf_pin.svg'); marker-fill: @address-color; - marker-geometry-transform: translate(2, -5); + marker-clip: false; } } diff --git a/symbols/golf_pin.svg b/symbols/golf_pin.svg deleted file mode 100644 index ddc0919dba..0000000000 --- a/symbols/golf_pin.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/symbols/leisure/golf_pin.svg b/symbols/leisure/golf_pin.svg new file mode 100644 index 0000000000..685020d81f --- /dev/null +++ b/symbols/leisure/golf_pin.svg @@ -0,0 +1,5 @@ + + + + + From 337b742788f3416c04f802b3cf8202dfadadaa68 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Wed, 1 Sep 2021 19:17:44 -0500 Subject: [PATCH 7/9] Rename planet_osm_line_name index to planet_osm_line_label and include rows where ref IS NOT NULL Update text-line layer query to take advantage of the updated index --- indexes.sql | 4 ++-- indexes.yml | 4 ++-- project.mml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/indexes.sql b/indexes.sql index 6c1990d3e4..b95a8aa172 100644 --- a/indexes.sql +++ b/indexes.sql @@ -4,9 +4,9 @@ CREATE INDEX planet_osm_line_ferry ON planet_osm_line USING GIST (way) WHERE route = 'ferry' AND osm_id > 0; -CREATE INDEX planet_osm_line_name +CREATE INDEX planet_osm_line_label ON planet_osm_line USING GIST (way) - WHERE name IS NOT NULL; + WHERE name IS NOT NULL OR ref IS NOT NULL; CREATE INDEX planet_osm_line_river ON planet_osm_line USING GIST (way) WHERE waterway = 'river'; diff --git a/indexes.yml b/indexes.yml index d13e1287f0..0a1d7eb652 100644 --- a/indexes.yml +++ b/indexes.yml @@ -7,8 +7,8 @@ point: place: where: place IS NOT NULL AND name IS NOT NULL line: - name: - where: name IS NOT NULL + label: + where: name IS NOT NULL OR ref IS NOT NULL ferry: where: route = 'ferry' AND osm_id > 0 river: diff --git a/project.mml b/project.mml index 84f0948d2e..9782371265 100644 --- a/project.mml +++ b/project.mml @@ -2042,7 +2042,7 @@ Layer: OR waterway IN ('dam', 'weir') OR "natural" IN ('arete', 'cliff', 'ridge')) AND name IS NOT NULL) - OR tags @> 'golf=>hole' + OR (tags @> 'golf=>hole' AND ref IS NOT NULL) ) AS text_line properties: minzoom: 10 From c4e64f34dac5c2c22c0f9cd8a867e40a57e66128 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Sat, 11 Sep 2021 14:31:04 -0500 Subject: [PATCH 8/9] Remove unneeded ref and name from query Co-authored-by: Paul Norman --- project.mml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.mml b/project.mml index 9782371265..f8f6c7bfd5 100644 --- a/project.mml +++ b/project.mml @@ -1054,7 +1054,7 @@ Layer: <<: *osm2pgsql table: |- (SELECT - way, tags->'golf' AS golf, ref, name + way, tags->'golf' AS golf FROM planet_osm_line WHERE tags @> 'golf=>hole' ) AS golf_line From dfdc1cc14f3844686477d91b7b6de5f0747ce070 Mon Sep 17 00:00:00 2001 From: Justin Gruca Date: Sat, 11 Sep 2021 14:31:28 -0500 Subject: [PATCH 9/9] Make formatting consistent within COALESCE Co-authored-by: Paul Norman --- project.mml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.mml b/project.mml index f8f6c7bfd5..079080d5b0 100644 --- a/project.mml +++ b/project.mml @@ -2024,7 +2024,7 @@ Layer: (SELECT way, NULL as way_pixels, - COALESCE('aerialway_' || aerialway, 'attraction_' || CASE WHEN tags @> 'attraction=>water_slide' THEN 'water_slide' END, 'leisure_' || leisure, 'man_made_' || man_made, 'waterway_' || waterway, 'natural_' || "natural", CASE WHEN tags @> 'golf=>hole' THEN 'golf_hole' END) AS feature, + COALESCE('aerialway_' || aerialway, 'attraction_' || CASE WHEN tags @> 'attraction=>water_slide' THEN 'water_slide' END, 'leisure_' || leisure, 'man_made_' || man_made, 'waterway_' || waterway, 'natural_' || "natural", 'golf_' || tags->'golf') AS feature, access, name, tags->'operator' as operator,