Skip to content

Commit

Permalink
Merge pull request #4381 from jgruca/render-golf-features-2
Browse files Browse the repository at this point in the history
Update leisure=golf_course color and render golf=* features (#661)
  • Loading branch information
pnorman authored Sep 11, 2021
2 parents 7101418 + dfdc1cc commit ac82b4a
Show file tree
Hide file tree
Showing 7 changed files with 113 additions and 10 deletions.
4 changes: 2 additions & 2 deletions indexes.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
4 changes: 2 additions & 2 deletions indexes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
28 changes: 23 additions & 5 deletions project.mml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ Stylesheet:
- style/aerialways.mss
- style/admin.mss
- style/addressing.mss
- style/golf.mss
Layer:
- id: landcover-low-zoom
geometry: polygon
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -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')
Expand Down Expand Up @@ -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
FROM planet_osm_line
WHERE tags @> 'golf=>hole'
) AS golf_line
properties:
minzoom: 16
- id: necountries
geometry: linestring
<<: *extents
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -2007,15 +2024,15 @@ 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", 'golf_' || tags->'golf') AS feature,
access,
name,
tags->'operator' as operator,
ref,
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'))
Expand All @@ -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' AND ref IS NOT NULL)
) AS text_line
properties:
minzoom: 10
Expand Down
71 changes: 71 additions & 0 deletions style/golf.mss
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#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-comp-op: soft-light;
}
}
}

#golf-line[zoom >= 16] {
[golf = 'hole'] {
line-color: @address-color;
line-width: 0.5;
}
}

#text-line[zoom >= 16] {
[feature = 'golf_hole'][ref != ''],
[feature = 'golf_hole'][name != ''] {
text-placement: line;
text-size: 11;
text-fill: @address-color;
text-face-name: @book-fonts;
text-halo-radius: @standard-halo-radius;
text-halo-fill: @standard-halo-fill;
text-name: "[ref]";

[name != ''] { text-name: "[name]"; }

[zoom >= 17] { text-size: 13; }
}
}

#amenity-points[zoom >= 16] {
[feature = 'golf_hole'],
[feature = 'golf_pin'] {
marker-file: url('symbols/leisure/golf_pin.svg');
marker-fill: @address-color;
marker-clip: false;
}
}

#text-point[zoom >= 17] {
[feature = 'golf_pin'][ref != ''] {
text-name: "[ref]";
text-size: @standard-font-size;
text-fill: @address-color;
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;
}
}
2 changes: 1 addition & 1 deletion style/landcover.mss
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
@pitch: #aae0cb; // Lch(85,22,168) also track
@track: @pitch;
@stadium: @leisure; // also sports_centre
@golf_course: #b5e3b5;
@golf_course: @campsite;

#landcover-low-zoom[zoom < 10],
#landcover[zoom >= 10] {
Expand Down
9 changes: 9 additions & 0 deletions symbols/golf_rough.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions symbols/leisure/golf_pin.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ac82b4a

Please sign in to comment.