Simplify some of the OSM->OMT field value mappings using declarative syntax. This approach is not for all cases, but in many it removes the need of storing the same field in both the .yaml and .sql files. TODO: support more complex AND/OR cases
150 lines
6.8 KiB
YAML
150 lines
6.8 KiB
YAML
layer:
|
|
id: "poi"
|
|
description: |
|
|
[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
|
|
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:
|
|
name: The OSM [`name`](http://wiki.openstreetmap.org/wiki/Key:name) value of the POI.
|
|
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: |
|
|
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', 'lamps', 'mall', 'massage', 'motorcycle', 'mobile_phone', 'newsagent',
|
|
'optician', 'outdoor', 'perfumery', 'perfume', 'pet', 'photo', 'second_hand', 'shoes', 'sports',
|
|
'stationery', 'tailor', 'tattoo', 'ticket', 'tobacco', 'toys', 'travel_agency', 'watches',
|
|
'weapons', 'wholesale']
|
|
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:
|
|
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']
|
|
cafe:
|
|
subclass: ['cafe']
|
|
school:
|
|
subclass: ['school', 'kindergarten']
|
|
alcohol_shop:
|
|
subclass: ['alcohol', 'beverages', 'wine']
|
|
bar:
|
|
subclass: ['bar', 'nightclub']
|
|
harbor:
|
|
subclass: ['marina', 'dock']
|
|
car:
|
|
subclass: ['car', 'car_repair', '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']
|
|
subclass:
|
|
description: |
|
|
Original value of either the
|
|
[`amenity`](http://wiki.openstreetmap.org/wiki/Key:amenity),
|
|
[`barrier`](http://wiki.openstreetmap.org/wiki/Key:barrier),
|
|
[`historic`](http://wiki.openstreetmap.org/wiki/Key:historic),
|
|
[`information`](http://wiki.openstreetmap.org/wiki/Key:information),
|
|
[`landuse`](http://wiki.openstreetmap.org/wiki/Key:landuse),
|
|
[`leisure`](http://wiki.openstreetmap.org/wiki/Key:leisure),
|
|
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
|
|
[`shop`](http://wiki.openstreetmap.org/wiki/Key:shop),
|
|
[`sport`](http://wiki.openstreetmap.org/wiki/Key:sport),
|
|
[`station`](http://wiki.openstreetmap.org/wiki/Key:station),
|
|
[`religion`](http://wiki.openstreetmap.org/wiki/Key:religion),
|
|
[`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism),
|
|
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway),
|
|
[`building`](http://wiki.openstreetmap.org/wiki/Key:building),
|
|
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway)
|
|
or [`waterway`](http://wiki.openstreetmap.org/wiki/Key:waterway)
|
|
tag. Use this to do more precise styling.
|
|
rank: |
|
|
The POIs are ranked ascending according to their importance within a grid. The `rank` value shows the
|
|
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
|
|
datasource:
|
|
geometry_field: geometry
|
|
key_field: osm_id
|
|
key_field_as_attribute: no
|
|
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
|
|
schema:
|
|
- ./public_transport_stop_type.sql
|
|
- ./update_poi_polygon.sql
|
|
- ./update_poi_point.sql
|
|
- ./class.sql
|
|
- ./poi_stop_agg.sql
|
|
- ./layer.sql
|
|
datasources:
|
|
- type: imposm3
|
|
mapping_file: ./mapping.yaml
|