Basic poi layer
This commit is contained in:
parent
4e64becbb8
commit
dbec752ed1
35
layers/poi/class.sql
Normal file
35
layers/poi/class.sql
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
CREATE OR REPLACE FUNCTION poi_class(subclass TEXT)
|
||||||
|
RETURNS TEXT AS $$
|
||||||
|
SELECT CASE
|
||||||
|
WHEN subclass IN ('accessories','antiques','art','beauty','bed','boutique','camera','carpet','charity','chemist','chocolate','coffee','computer','confectionery','convenience','copyshop','cosmetics','garden_centre','doityourself','erotic','electronics','fabric','florist','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') THEN 'shop'
|
||||||
|
WHEN subclass IN ('townhall','public_building','courthouse','community_centre') THEN 'town_hall'
|
||||||
|
WHEN subclass IN ('golf','golf_course','miniature_golf') THEN 'golf'
|
||||||
|
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 IN ('camp_site','caravan_site') THEN 'campsite'
|
||||||
|
WHEN subclass IN ('laundry','dry_cleaning') THEN 'laundry'
|
||||||
|
WHEN subclass IN ('supermarket','deli','delicatessen','department_store','greengrocer','marketplace') THEN 'grocery'
|
||||||
|
WHEN subclass IN ('books','library') THEN 'library'
|
||||||
|
WHEN subclass IN ('university','college') THEN 'college'
|
||||||
|
WHEN subclass IN ('hotel','motel','bed_and_breakfast','guest_house','hostel','chalet','alpine_hut','camp_site') THEN 'lodging'
|
||||||
|
WHEN subclass IN ('chocolate','confectionery') THEN 'ice_cream'
|
||||||
|
WHEN subclass IN ('post_box','post_office') THEN 'post'
|
||||||
|
WHEN subclass IN ('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'
|
||||||
|
WHEN subclass IN ('marina','dock') THEN 'harbor'
|
||||||
|
WHEN subclass IN ('car','car_repair','taxi') THEN 'car'
|
||||||
|
WHEN subclass IN ('hospital','nursing_home') THEN 'hospital'
|
||||||
|
WHEN subclass IN ('grave_yard','cemetery') THEN 'cemetery'
|
||||||
|
WHEN subclass IN ('attraction','viewpoint') THEN 'attraction'
|
||||||
|
WHEN subclass IN ('biergarten','pub') THEN 'beer'
|
||||||
|
WHEN subclass IN ('music','musical_instrument') THEN 'music'
|
||||||
|
WHEN subclass IN ('american_football','stadium','soccer','pitch') THEN 'stadium'
|
||||||
|
WHEN subclass IN ('accessories','antiques','art','artwork','gallery','arts_centre') THEN 'art_gallery'
|
||||||
|
WHEN subclass IN ('bag','clothes') THEN 'clothing_store'
|
||||||
|
WHEN subclass IN ('swimming_area','swimming') THEN 'swimming'
|
||||||
|
ELSE subclass
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE SQL IMMUTABLE;
|
||||||
8
layers/poi/layer.sql
Normal file
8
layers/poi/layer.sql
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
CREATE OR REPLACE FUNCTION layer_poi(bbox geometry, zoom_level integer)
|
||||||
|
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class text, subclass text) AS $$
|
||||||
|
SELECT id, geometry, name, NULLIF(name_en, ''), poi_class(subclass) AS class, subclass
|
||||||
|
FROM osm_poi_point
|
||||||
|
WHERE geometry && bbox
|
||||||
|
AND name <> ''
|
||||||
|
AND (zoom_level >= 14);
|
||||||
|
$$ LANGUAGE SQL IMMUTABLE;
|
||||||
283
layers/poi/mapping.yaml
Normal file
283
layers/poi/mapping.yaml
Normal file
@ -0,0 +1,283 @@
|
|||||||
|
tables:
|
||||||
|
poi_point:
|
||||||
|
type: point
|
||||||
|
fields:
|
||||||
|
- name: osm_id
|
||||||
|
type: id
|
||||||
|
- name: geometry
|
||||||
|
type: geometry
|
||||||
|
- name: name
|
||||||
|
key: name
|
||||||
|
type: string
|
||||||
|
- name: name_en
|
||||||
|
key: name:en
|
||||||
|
type: string
|
||||||
|
- name: subclass
|
||||||
|
type: mapping_value
|
||||||
|
mapping:
|
||||||
|
amenity:
|
||||||
|
- arts_centre
|
||||||
|
- police
|
||||||
|
- fire_station
|
||||||
|
- post_box
|
||||||
|
- post_office
|
||||||
|
- telephone
|
||||||
|
- library
|
||||||
|
- townhall
|
||||||
|
- courthouse
|
||||||
|
- prison
|
||||||
|
- place_of_worship
|
||||||
|
- embassy
|
||||||
|
- community_centre
|
||||||
|
- nursing_home
|
||||||
|
- university
|
||||||
|
- school
|
||||||
|
- kindergarten
|
||||||
|
- college
|
||||||
|
- public_building
|
||||||
|
- pharmacy
|
||||||
|
- hospital
|
||||||
|
- doctors
|
||||||
|
- dentist
|
||||||
|
- veterinary
|
||||||
|
- theatre
|
||||||
|
- nightclub
|
||||||
|
- cinema
|
||||||
|
- restaurant
|
||||||
|
- recycling
|
||||||
|
- fast_food
|
||||||
|
- cafe
|
||||||
|
- pub
|
||||||
|
- bar
|
||||||
|
- food_court
|
||||||
|
- biergarten
|
||||||
|
- swimming_pool
|
||||||
|
- shelter
|
||||||
|
- grave_yard
|
||||||
|
- bank
|
||||||
|
- ferry_terminal
|
||||||
|
- fuel
|
||||||
|
- waste_basket
|
||||||
|
- bicycle_rental
|
||||||
|
- bbq
|
||||||
|
- taxi
|
||||||
|
- bus_station
|
||||||
|
- marketplace
|
||||||
|
- toilets
|
||||||
|
leisure:
|
||||||
|
- park
|
||||||
|
- playground
|
||||||
|
- dog_park
|
||||||
|
- sports_centre
|
||||||
|
- pitch
|
||||||
|
- swimming_pool
|
||||||
|
- swimming_area
|
||||||
|
- water_park
|
||||||
|
- golf_course
|
||||||
|
- miniature_golf
|
||||||
|
- marina
|
||||||
|
- stadium
|
||||||
|
- ice_rink
|
||||||
|
- garden
|
||||||
|
landuse:
|
||||||
|
- cemetery
|
||||||
|
- basin
|
||||||
|
- reservoir
|
||||||
|
- brownfield
|
||||||
|
sport:
|
||||||
|
- swimming
|
||||||
|
- tennis
|
||||||
|
- soccer
|
||||||
|
- baseball
|
||||||
|
- basketball
|
||||||
|
- multi
|
||||||
|
- golf
|
||||||
|
- equestrian
|
||||||
|
- athletics
|
||||||
|
- volleyball
|
||||||
|
- climbing
|
||||||
|
- bowls
|
||||||
|
- american_football
|
||||||
|
- skateboard
|
||||||
|
- shooting
|
||||||
|
- skiing
|
||||||
|
- boules
|
||||||
|
- beachvolleyball
|
||||||
|
- cricket
|
||||||
|
- table_tennis
|
||||||
|
- hockey
|
||||||
|
- gymnastics
|
||||||
|
- running
|
||||||
|
- canoe
|
||||||
|
- rugby_union
|
||||||
|
- skating
|
||||||
|
- scuba_diving
|
||||||
|
- motor
|
||||||
|
- horse_racing
|
||||||
|
- handball
|
||||||
|
- team_handball
|
||||||
|
- karting
|
||||||
|
- cycling
|
||||||
|
- archery
|
||||||
|
- motocross
|
||||||
|
- pelota
|
||||||
|
- rugby
|
||||||
|
- gaelic_games
|
||||||
|
- model_aerodrome
|
||||||
|
- netball
|
||||||
|
- rugby_league
|
||||||
|
- free_flying
|
||||||
|
- rowing
|
||||||
|
- chess
|
||||||
|
- australian_football
|
||||||
|
- cricket_nets
|
||||||
|
- racquet
|
||||||
|
- bmx
|
||||||
|
- sailing
|
||||||
|
- ice_stock
|
||||||
|
- badminton
|
||||||
|
- paddle_tennis
|
||||||
|
- dog_racing
|
||||||
|
- fatsal
|
||||||
|
- billiards
|
||||||
|
- ice_hockey
|
||||||
|
- yoga
|
||||||
|
- disc_golf
|
||||||
|
- orienteering
|
||||||
|
- toboggan
|
||||||
|
- horseshoes
|
||||||
|
- paragliding
|
||||||
|
- korfball
|
||||||
|
- diving
|
||||||
|
- rc_car
|
||||||
|
- canadian_football
|
||||||
|
- field_hockey
|
||||||
|
- shooting_range
|
||||||
|
- boxing
|
||||||
|
- curling
|
||||||
|
- surfing
|
||||||
|
- water_ski
|
||||||
|
- judo
|
||||||
|
- croquet
|
||||||
|
- paintball
|
||||||
|
- climbing_adventure
|
||||||
|
- long_jump
|
||||||
|
- table_soccer
|
||||||
|
tourism:
|
||||||
|
- attraction
|
||||||
|
- artwork
|
||||||
|
- gallery
|
||||||
|
- hotel
|
||||||
|
- motel
|
||||||
|
- bed_and_breakfast
|
||||||
|
- guest_house
|
||||||
|
- hostel
|
||||||
|
- chalet
|
||||||
|
- camp_site
|
||||||
|
- alpine_hut
|
||||||
|
- caravan_site
|
||||||
|
- museum
|
||||||
|
- viewpoint
|
||||||
|
- zoo
|
||||||
|
- theme_park
|
||||||
|
- information
|
||||||
|
- picnic_site
|
||||||
|
shop:
|
||||||
|
- accessories
|
||||||
|
- alcohol
|
||||||
|
- antiques
|
||||||
|
- art
|
||||||
|
- bag
|
||||||
|
- bakery
|
||||||
|
- beauty
|
||||||
|
- bed
|
||||||
|
- beverages
|
||||||
|
- bicycle
|
||||||
|
- books
|
||||||
|
- boutique
|
||||||
|
- butcher
|
||||||
|
- camera
|
||||||
|
- car
|
||||||
|
- car_repair
|
||||||
|
- carpet
|
||||||
|
- charity
|
||||||
|
- chemist
|
||||||
|
- chocolate
|
||||||
|
- clothes
|
||||||
|
- coffee
|
||||||
|
- computer
|
||||||
|
- confectionery
|
||||||
|
- convenience
|
||||||
|
- copyshop
|
||||||
|
- cosmetics
|
||||||
|
- garden_centre
|
||||||
|
- deli
|
||||||
|
- delicatessen
|
||||||
|
- department_store
|
||||||
|
- doityourself
|
||||||
|
- dry_cleaning
|
||||||
|
- video
|
||||||
|
- electronics
|
||||||
|
- erotic
|
||||||
|
- fabric
|
||||||
|
- florist
|
||||||
|
- furniture
|
||||||
|
- video_games
|
||||||
|
- general
|
||||||
|
- gift
|
||||||
|
- greengrocer
|
||||||
|
- hairdresser
|
||||||
|
- hardware
|
||||||
|
- hearing_aids
|
||||||
|
- hifi
|
||||||
|
- ice_cream
|
||||||
|
- interior_decoration
|
||||||
|
- jewelry
|
||||||
|
- kiosk
|
||||||
|
- lamps
|
||||||
|
- laundry
|
||||||
|
- mall
|
||||||
|
- massage
|
||||||
|
- mobile_phone
|
||||||
|
- motorcycle
|
||||||
|
- music
|
||||||
|
- musical_instrument
|
||||||
|
- newsagent
|
||||||
|
- optician
|
||||||
|
- outdoor
|
||||||
|
- perfumery
|
||||||
|
- perfume
|
||||||
|
- pet
|
||||||
|
- photo
|
||||||
|
- second_hand
|
||||||
|
- shoes
|
||||||
|
- sports
|
||||||
|
- stationery
|
||||||
|
- supermarket
|
||||||
|
- tailor
|
||||||
|
- tattoo
|
||||||
|
- ticket
|
||||||
|
- tobacco
|
||||||
|
- toys
|
||||||
|
- travel_agency
|
||||||
|
- watches
|
||||||
|
- weapons
|
||||||
|
- wholesale
|
||||||
|
- wine
|
||||||
|
highway:
|
||||||
|
- bus_stop
|
||||||
|
barrier:
|
||||||
|
- sally_port
|
||||||
|
- lift_gate
|
||||||
|
- gate
|
||||||
|
- bollard
|
||||||
|
- stile
|
||||||
|
- cycle_barrier
|
||||||
|
- toll_booth
|
||||||
|
- border_control
|
||||||
|
historic:
|
||||||
|
- monument
|
||||||
|
waterway:
|
||||||
|
- dock
|
||||||
|
aerialway:
|
||||||
|
- station
|
||||||
18
layers/poi/poi.yaml
Normal file
18
layers/poi/poi.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
layer:
|
||||||
|
id: "poi"
|
||||||
|
description: |
|
||||||
|
POIs.
|
||||||
|
buffer_size: 8
|
||||||
|
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:
|
||||||
|
class: String
|
||||||
|
datasource:
|
||||||
|
geometry_field: geometry
|
||||||
|
srid: 900913
|
||||||
|
query: (SELECT geometry, name, name_en, class, subclass FROM layer_poi(!bbox!, z(!scale_denominator!))) AS t
|
||||||
|
schema:
|
||||||
|
- ./class.sql
|
||||||
|
- ./layer.sql
|
||||||
|
datasources:
|
||||||
|
- type: imposm3
|
||||||
|
mapping_file: ./mapping.yaml
|
||||||
@ -7,6 +7,7 @@ tileset:
|
|||||||
# housenumbers are quite heavy on the tile size (up to +30KB)
|
# housenumbers are quite heavy on the tile size (up to +30KB)
|
||||||
#- layers/housenumber/housenumber.yaml
|
#- layers/housenumber/housenumber.yaml
|
||||||
- layers/place/place.yaml
|
- layers/place/place.yaml
|
||||||
|
- layers/poi/poi.yaml
|
||||||
- layers/railway/railway.yaml
|
- layers/railway/railway.yaml
|
||||||
- layers/water_name/water_name.yaml
|
- layers/water_name/water_name.yaml
|
||||||
- layers/water/water.yaml
|
- layers/water/water.yaml
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user