openmaptiles/layers/poi/poi.yaml

170 wiersze
8.3 KiB
YAML
Czysty Zwykły widok Historia

2016-10-28 15:46:10 +00:00
layer:
id: "poi"
description: |
2016-10-28 20:34:42 +00:00
[Points of interests](http://wiki.openstreetmap.org/wiki/Points_of_interest) containing
a of a variety of OpenStreetMap tags. Mostly contains amenities, sport, shop and tourist POIs.
buffer_size: 64
2016-10-28 15:46:10 +00:00
srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over
fields:
2016-10-28 20:34:42 +00:00
name: The OSM [`name`](http://wiki.openstreetmap.org/wiki/Key:name) value of the POI.
2017-03-17 12:15:40 +00:00
name_en: English name `name:en` if available, otherwise `name`.
name_de: German name `name:de` if available, otherwise `name` or `name:en`.
class:
description: |
2016-10-28 20:34:42 +00:00
More general classes of POIs. If there is no more general `class` for the `subclass`
this field will contain the same value as `subclass`.
But for example for schools you only need to style the class `school` to filter the subclasses `school`
and `kindergarten`. Or use the class `shop` to style all shops.
values:
shop:
subclass: ['accessories', 'antiques', 'beauty', 'bed', 'boutique', 'camera', 'carpet', 'charity', 'chemist',
'coffee', 'computer', 'convenience', 'copyshop', 'cosmetics', 'garden_centre', 'doityourself',
'erotic', 'electronics', 'fabric', 'florist', 'frozen_food', 'furniture', 'video_games', 'video',
'general', 'gift', 'hardware', 'hearing_aids', 'hifi', 'ice_cream', 'interior_decoration',
'jewelry', 'kiosk', 'locksmith', 'lamps', 'mall', 'massage', 'motorcycle', 'mobile_phone',
'newsagent', 'optician', 'outdoor', 'paint', 'perfumery', 'perfume', 'pet', 'photo', 'second_hand',
'shoes', 'sports', 'stationery', 'tailor', 'tattoo', 'ticket', 'tobacco', 'toys', 'travel_agency',
'watches', 'weapons', 'wholesale']
office:
subclass: ['accountant', 'advertising_agency', 'architect', 'association', 'bail_bond_agent', 'charity',
'company', 'construction_company', 'consulting', 'cooperative', 'courier', 'coworking', 'diplomatic',
'educational_institution', 'employment_agency', 'energy_supplier', 'engineer', 'estate_agent', 'financial',
'financial_advisor', 'forestry', 'foundation', 'geodesist', 'government', 'graphic_design', 'guide',
'harbour_master', 'health_insurance', 'insurance', 'interior_design', 'it', 'lawyer', 'logistics', 'marketing',
'moving_company', 'newspaper', 'ngo', 'notary', 'physician', 'political_party', 'private_investigator',
'property_management', 'publisher', 'quango', 'religion', 'research', 'security', 'surveyor', 'tax_advisor',
'taxi', 'telecommunication', 'therapist', 'translator', 'travel_agent', 'tutoring', 'union', 'university',
'water_utility', 'web_design', 'wedding_planner']
town_hall:
subclass: ['townhall', 'public_building', 'courthouse', 'community_centre']
golf:
subclass: ['golf', 'golf_course', 'miniature_golf']
fast_food:
subclass: ['fast_food', 'food_court']
park:
subclass: ['park', 'bbq']
bus:
subclass: ['bus_stop', 'bus_station']
railway:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
- __AND__:
subclass: 'station'
mapping_key: 'railway'
- subclass: ['halt', 'tram_stop', 'subway']
aerialway:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
subclass: 'station'
mapping_key: 'aerialway'
entrance:
subclass: ['subway_entrance', 'train_station_entrance']
campsite:
subclass: ['camp_site', 'caravan_site']
laundry:
subclass: ['laundry', 'dry_cleaning']
grocery:
subclass: ['supermarket', 'deli', 'delicatessen', 'department_store', 'greengrocer', 'marketplace']
library:
subclass: ['books', 'library']
college:
subclass: ['university', 'college']
lodging:
subclass: ['hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory']
ice_cream:
subclass: ['chocolate', 'confectionery']
post:
subclass: ['post_box', 'post_office', 'parcel_locker']
cafe:
subclass: ['cafe']
school:
subclass: ['school', 'kindergarten']
alcohol_shop:
subclass: ['alcohol', 'beverages', 'wine']
bar:
subclass: ['bar', 'nightclub']
harbor:
subclass: ['marina', 'dock']
car:
2020-05-27 14:08:53 +00:00
subclass: ['car', 'car_repair', 'car_parts', 'taxi']
hospital:
subclass: ['hospital', 'nursing_home', 'clinic']
cemetery:
subclass: ['grave_yard', 'cemetery']
attraction:
subclass: ['attraction', 'viewpoint']
beer:
subclass: ['biergarten', 'pub']
music:
subclass: ['music', 'musical_instrument']
stadium:
subclass: ['american_football', 'stadium', 'soccer']
art_gallery:
subclass: ['art', 'artwork', 'gallery', 'arts_centre']
clothing_store:
subclass: ['bag', 'clothes']
swimming:
subclass: ['swimming_area', 'swimming']
castle:
subclass: ['castle', 'ruins']
atm:
subclass: ['atm']
2017-01-05 15:46:11 +00:00
subclass:
description: |
Original value of either the
[`amenity`](http://wiki.openstreetmap.org/wiki/Key:amenity),
2019-05-17 15:28:20 +00:00
[`barrier`](http://wiki.openstreetmap.org/wiki/Key:barrier),
[`historic`](http://wiki.openstreetmap.org/wiki/Key:historic),
[`information`](http://wiki.openstreetmap.org/wiki/Key:information),
2017-01-05 15:46:11 +00:00
[`landuse`](http://wiki.openstreetmap.org/wiki/Key:landuse),
2019-05-17 15:28:20 +00:00
[`leisure`](http://wiki.openstreetmap.org/wiki/Key:leisure),
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
2019-05-17 15:28:20 +00:00
[`shop`](http://wiki.openstreetmap.org/wiki/Key:shop),
2017-01-05 15:46:11 +00:00
[`sport`](http://wiki.openstreetmap.org/wiki/Key:sport),
2019-05-17 15:28:20 +00:00
[`station`](http://wiki.openstreetmap.org/wiki/Key:station),
[`religion`](http://wiki.openstreetmap.org/wiki/Key:religion),
[`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism),
2019-05-17 15:28:20 +00:00
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway),
[`building`](http://wiki.openstreetmap.org/wiki/Key:building),
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway),
[`office`](https://wiki.openstreetmap.org/wiki/Key:office)
2019-05-17 15:28:20 +00:00
or [`waterway`](http://wiki.openstreetmap.org/wiki/Key:waterway)
2017-01-05 15:46:11 +00:00
tag. Use this to do more precise styling.
2016-10-29 09:15:46 +00:00
rank: |
The POIs are ranked ascending according to their importance within a grid. The `rank` value shows the
2017-01-05 15:46:11 +00:00
local relative importance of a POI within it's cell in the grid. This can be used to reduce label density at *z14*.
Since all POIs already need to be contained at *z14* you can use `less than rank=10` epxression to limit
POIs. At some point like *z17* you can show all POIs.
agg_stop:
description: |
Experimental feature! Indicates main platform of public transport
stops (buses, trams, and subways). Grouping of platforms is
implemented using
[`uic_ref`](http://wiki.openstreetmap.org/wiki/Key:uic_ref) tag that
is not used worldwide.
values: [1]
level:
description: |
Original value of [`level`](http://wiki.openstreetmap.org/wiki/Key:level) tag.
layer:
description: |
Original value of [`layer`](http://wiki.openstreetmap.org/wiki/Key:layer) tag.
indoor:
description: |
Original value of [`indoor`](http://wiki.openstreetmap.org/wiki/Key:indoor) tag.
values:
- 1
2016-10-28 15:46:10 +00:00
datasource:
geometry_field: geometry
2017-11-28 18:38:59 +00:00
key_field: osm_id
key_field_as_attribute: no
2016-10-28 15:46:10 +00:00
srid: 900913
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, subclass, agg_stop, layer, level, indoor, rank FROM layer_poi(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
2016-10-28 15:46:10 +00:00
schema:
- ./public_transport_stop_type.sql
2016-10-28 15:46:10 +00:00
- ./class.sql
- ./poi_stop_agg.sql
- ./update_poi_polygon.sql
- ./update_poi_point.sql
- ./poi.sql
2016-10-28 15:46:10 +00:00
datasources:
- type: imposm3
mapping_file: ./mapping.yaml