Merge pull request #58 from openmaptiles/poi_polygon_fix46

Poi polygon fix #46
pull/66/head
Lukas Martinelli 2016-11-28 15:26:48 +01:00 zatwierdzone przez GitHub
commit aed323bb99
5 zmienionych plików z 357 dodań i 277 usunięć

Wyświetl plik

@ -1,11 +1,9 @@
version: "2"
volumes:
pgdata:
services:
postgres:
image: "openmaptiles/postgis:2.2"
volumes:
- pgdata:/var/lib/postgresql/data
- ./pgdata:/var/lib/postgresql/data
ports:
- "5432"
env_file: .env

Wyświetl plik

@ -1,5 +1,5 @@
-- etldoc: layer_poi[shape=record fillcolor=lightpink, style="rounded,filled",
-- etldoc: layer_poi[shape=record fillcolor=lightpink, style="rounded,filled",
-- etldoc: label="layer_poi | <z14_> z14_" ] ;
CREATE OR REPLACE FUNCTION layer_poi(bbox geometry, zoom_level integer, pixel_width numeric)
@ -7,12 +7,20 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class t
SELECT osm_id, geometry, name, NULLIF(name_en, ''), poi_class(subclass) AS class, subclass,
row_number() OVER (
PARTITION BY LabelGrid(geometry, 100 * pixel_width)
ORDER BY poi_class_rank(poi_class(subclass)) ASC, length(name) DESC
ORDER BY poi_class_rank(poi_class(subclass)) ASC,
length(name) DESC NULLS LAST
)::int AS "rank"
-- etldoc: osm_poi_point -> layer_poi:z14_
FROM osm_poi_point
WHERE geometry && bbox
AND zoom_level >= 14
AND name <> ''
ORDER BY "rank";
FROM (
-- etldoc: osm_poi_point -> layer_poi:z14
SELECT * FROM osm_poi_point
WHERE geometry && bbox
AND zoom_level >= 14
UNION ALL
-- etldoc: osm_poi_polygon -> layer_poi:z14
SELECT * FROM osm_poi_polygon
WHERE geometry && bbox
AND zoom_level >= 14
) as poi_union
ORDER BY "rank"
;
$$ LANGUAGE SQL IMMUTABLE;

Wyświetl plik

@ -1,3 +1,296 @@
# imposm3 mapping file for https://github.com/osm2vectortiles/imposm3
# Warning: this is not the official imposm3
# aerialway values , see http://taginfo.openstreetmap.org/keys/aerialway#values
def_poi_mapping_aerialway: &poi_mapping_aerialway
- station
# amenity values , see http://taginfo.openstreetmap.org/keys/amenity#values
def_poi_mapping_amenity: &poi_mapping_amenity
- arts_centre
- bank
- bar
- bbq
- bicycle_rental
- biergarten
- bus_station
- cafe
- cinema
- college
- community_centre
- courthouse
- dentist
- doctors
- embassy
- fast_food
- ferry_terminal
- fire_station
- food_court
- fuel
- grave_yard
- hospital
- ice_cream
- kindergarten
- library
- marketplace
- nightclub
- nursing_home
- pharmacy
- place_of_worship
- police
- post_box
- post_office
- prison
- pub
- public_building
- recycling
- restaurant
- school
- shelter
- swimming_pool
- taxi
- telephone
- theatre
- toilets
- townhall
- university
- veterinary
- waste_basket
# barrier values , see http://taginfo.openstreetmap.org/keys/barrier#values
def_poi_mapping_barrier: &poi_mapping_barrier
- bollard
- border_control
- cycle_barrier
- gate
- lift_gate
- sally_port
- stile
- toll_booth
# highway values , see http://taginfo.openstreetmap.org/keys/highway#values
def_poi_mapping_highway: &poi_mapping_highway
- bus_stop
# historic values , see http://taginfo.openstreetmap.org/keys/historic#values
def_poi_mapping_historic: &poi_mapping_historic
- monument
# landuse values , see http://taginfo.openstreetmap.org/keys/landuse#values
def_poi_mapping_landuse: &poi_mapping_landuse
- basin
- brownfield
- cemetery
- reservoir
# leisure values , see http://taginfo.openstreetmap.org/keys/leisure#values
def_poi_mapping_leisure: &poi_mapping_leisure
- dog_park
- garden
- golf_course
- ice_rink
- marina
- miniature_golf
- park
- pitch
- playground
- sports_centre
- stadium
- swimming_area
- swimming_pool
- water_park
# shop values , see http://taginfo.openstreetmap.org/keys/shop#values
def_poi_mapping_shop: &poi_mapping_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
- deli
- delicatessen
- department_store
- doityourself
- dry_cleaning
- electronics
- erotic
- fabric
- florist
- furniture
- garden_centre
- 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
- perfume
- perfumery
- pet
- photo
- second_hand
- shoes
- sports
- stationery
- supermarket
- tailor
- tattoo
- ticket
- tobacco
- toys
- travel_agency
- video
- video_games
- watches
- weapons
- wholesale
- wine
# sport values , see http://taginfo.openstreetmap.org/keys/sport#values
def_poi_mapping_sport: &poi_mapping_sport
- american_football
- archery
- athletics
- australian_football
- badminton
- baseball
- basketball
- beachvolleyball
- billiards
- bmx
- boules
- bowls
- boxing
- canadian_football
- canoe
- chess
- climbing
- climbing_adventure
- cricket
- cricket_nets
- croquet
- curling
- cycling
- disc_golf
- diving
- dog_racing
- equestrian
- fatsal
- field_hockey
- free_flying
- gaelic_games
- golf
- gymnastics
- handball
- hockey
- horse_racing
- horseshoes
- ice_hockey
- ice_stock
- judo
- karting
- korfball
- long_jump
- model_aerodrome
- motocross
- motor
- multi
- netball
- orienteering
- paddle_tennis
- paintball
- paragliding
- pelota
- racquet
- rc_car
- rowing
- rugby
- rugby_league
- rugby_union
- running
- sailing
- scuba_diving
- shooting
- shooting_range
- skateboard
- skating
- skiing
- soccer
- surfing
- swimming
- table_soccer
- table_tennis
- team_handball
- tennis
- toboggan
- volleyball
- water_ski
- yoga
# tourism values , see http://taginfo.openstreetmap.org/keys/tourism#values
def_poi_mapping_tourism: &poi_mapping_tourism
- alpine_hut
- artwork
- attraction
- bed_and_breakfast
- camp_site
- caravan_site
- chalet
- gallery
- guest_house
- hostel
- hotel
- information
- motel
- museum
- picnic_site
- theme_park
- viewpoint
- zoo
# waterway values , see http://taginfo.openstreetmap.org/keys/waterway#values
def_poi_mapping_waterway: &poi_mapping_waterway
- dock
tables:
# etldoc: imposm3 -> osm_poi_point
poi_point:
@ -16,269 +309,44 @@ tables:
- 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
aerialway: *poi_mapping_aerialway
amenity: *poi_mapping_amenity
barrier: *poi_mapping_barrier
highway: *poi_mapping_highway
historic: *poi_mapping_historic
landuse: *poi_mapping_landuse
leisure: *poi_mapping_leisure
shop: *poi_mapping_shop
sport: *poi_mapping_sport
tourism: *poi_mapping_tourism
waterway: *poi_mapping_waterway
# etldoc: imposm3 -> osm_poi_polygon
poi_polygon:
type: polygon
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:
aerialway: *poi_mapping_aerialway
amenity: *poi_mapping_amenity
barrier: *poi_mapping_barrier
highway: *poi_mapping_highway
historic: *poi_mapping_historic
landuse: *poi_mapping_landuse
leisure: *poi_mapping_leisure
shop: *poi_mapping_shop
sport: *poi_mapping_sport
tourism: *poi_mapping_tourism
waterway: *poi_mapping_waterway

Wyświetl plik

@ -32,6 +32,7 @@ layer:
srid: 900913
query: (SELECT geometry, name, name_en, class, subclass, rank FROM layer_poi(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
schema:
- ./poi_polygon_update.sql
- ./class.sql
- ./layer.sql
datasources:

Wyświetl plik

@ -0,0 +1,5 @@
-- etldoc: osm_poi_polygon -> osm_poi_polygon
UPDATE osm_poi_polygon SET geometry=topoint(geometry)
WHERE ST_GeometryType(geometry) <> 'ST_Point';
ANALYZE osm_poi_polygon;