Refinements in POI_Ranking

This commit is contained in:
Miel Truyen 2020-08-10 22:53:19 +02:00
parent 14238e9863
commit df3f592513
2 changed files with 24 additions and 20 deletions

View File

@ -1,4 +1,4 @@
CREATE OR REPLACE FUNCTION poi_class_rank(class text)
CREATE OR REPLACE FUNCTION poi_class_rank(class text, subclass text)
RETURNS int AS
$$
SELECT CASE class
@ -10,7 +10,11 @@ SELECT CASE class
WHEN 'taxi' THEN 50
WHEN 'harbor' THEN 55
WHEN 'library' THEN 60
WHEN 'bus' THEN 70
WHEN 'bus' THEN
SELECT CASE subclass
WHEN 'bus_station' THEN 70
ELSE 72
END
WHEN 'attraction' THEN 75
WHEN 'college' THEN 80
WHEN 'school' THEN 85
@ -27,8 +31,8 @@ SELECT CASE class
WHEN 'entrance' THEN 250
WHEN 'parking' THEN 300
WHEN 'car_parking' THEN 300
WHEN 'charging_station' THEN 350
WHEN 'fuel' THEN 350
WHEN 'charging_station' THEN 355
WHEN 'bicycle_parking' THEN 360
WHEN 'motorcycle_parking' THEN 360
WHEN 'bank' THEN 380
@ -37,21 +41,21 @@ SELECT CASE class
WHEN 'bar' THEN 450
WHEN 'cafe' THEN 450
WHEN 'grocery' THEN 450
WHEN 'shop' THEN 500
WHEN 'optician' THEN 500
WHEN 'furniture' THEN 500
WHEN 'jewelry' THEN 500
WHEN 'toys' THEN 500
WHEN 'newsagent' THEN 500
WHEN 'paint' THEN 500
WHEN 'electronics' THEN 500
WHEN 'garden_centre' THEN 500
WHEN 'community_centre' THEN 600
WHEN 'mobile_phone' THEN 700
WHEN 'shoes' THEN 700
WHEN 'clothing_store' THEN 700
WHEN 'community_centre' THEN 500
WHEN 'shop' THEN 600
WHEN 'optician' THEN 600
WHEN 'furniture' THEN 600
WHEN 'jewelry' THEN 600
WHEN 'toys' THEN 600
WHEN 'newsagent' THEN 600
WHEN 'paint' THEN 600
WHEN 'electronics' THEN 600
WHEN 'garden_centre' THEN 600
WHEN 'mobile_phone' THEN 600
WHEN 'shoes' THEN 600
WHEN 'clothing_store' THEN 600
WHEN 'florist' THEN 600
WHEN 'laundry' THEN 700
WHEN 'florist' THEN 750
WHEN 'dog_park' THEN 800
WHEN 'pitch' THEN 800
WHEN 'power_tower' then 900

View File

@ -54,7 +54,7 @@ SELECT osm_id_hash AS osm_id,
subclass,
mapping_key,
subtype
)) END ASC
), subclass) END ASC
)::int AS "rank"
FROM (
-- Intermediate mapping for subtype and filtering out nameless industrial/office buildings
@ -118,9 +118,9 @@ FROM (
FROM osm_poi_polygon
WHERE geometry && bbox
AND zoom_level >= 14
) AS poi_union
) AS poi_union_raw
WHERE NOT (mapping_key = 'building' AND (subclass = 'office' OR subclass = 'industrial') AND coalesce(name, name_en, '') = '')
)
) AS poi_union
ORDER BY "rank"
$$ LANGUAGE SQL STABLE
PARALLEL SAFE;