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 RETURNS int AS
$$ $$
SELECT CASE class SELECT CASE class
@ -10,7 +10,11 @@ SELECT CASE class
WHEN 'taxi' THEN 50 WHEN 'taxi' THEN 50
WHEN 'harbor' THEN 55 WHEN 'harbor' THEN 55
WHEN 'library' THEN 60 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 'attraction' THEN 75
WHEN 'college' THEN 80 WHEN 'college' THEN 80
WHEN 'school' THEN 85 WHEN 'school' THEN 85
@ -27,8 +31,8 @@ SELECT CASE class
WHEN 'entrance' THEN 250 WHEN 'entrance' THEN 250
WHEN 'parking' THEN 300 WHEN 'parking' THEN 300
WHEN 'car_parking' THEN 300 WHEN 'car_parking' THEN 300
WHEN 'charging_station' THEN 350
WHEN 'fuel' THEN 350 WHEN 'fuel' THEN 350
WHEN 'charging_station' THEN 355
WHEN 'bicycle_parking' THEN 360 WHEN 'bicycle_parking' THEN 360
WHEN 'motorcycle_parking' THEN 360 WHEN 'motorcycle_parking' THEN 360
WHEN 'bank' THEN 380 WHEN 'bank' THEN 380
@ -37,21 +41,21 @@ SELECT CASE class
WHEN 'bar' THEN 450 WHEN 'bar' THEN 450
WHEN 'cafe' THEN 450 WHEN 'cafe' THEN 450
WHEN 'grocery' THEN 450 WHEN 'grocery' THEN 450
WHEN 'shop' THEN 500 WHEN 'community_centre' THEN 500
WHEN 'optician' THEN 500 WHEN 'shop' THEN 600
WHEN 'furniture' THEN 500 WHEN 'optician' THEN 600
WHEN 'jewelry' THEN 500 WHEN 'furniture' THEN 600
WHEN 'toys' THEN 500 WHEN 'jewelry' THEN 600
WHEN 'newsagent' THEN 500 WHEN 'toys' THEN 600
WHEN 'paint' THEN 500 WHEN 'newsagent' THEN 600
WHEN 'electronics' THEN 500 WHEN 'paint' THEN 600
WHEN 'garden_centre' THEN 500 WHEN 'electronics' THEN 600
WHEN 'community_centre' THEN 600 WHEN 'garden_centre' THEN 600
WHEN 'mobile_phone' THEN 700 WHEN 'mobile_phone' THEN 600
WHEN 'shoes' THEN 700 WHEN 'shoes' THEN 600
WHEN 'clothing_store' THEN 700 WHEN 'clothing_store' THEN 600
WHEN 'florist' THEN 600
WHEN 'laundry' THEN 700 WHEN 'laundry' THEN 700
WHEN 'florist' THEN 750
WHEN 'dog_park' THEN 800 WHEN 'dog_park' THEN 800
WHEN 'pitch' THEN 800 WHEN 'pitch' THEN 800
WHEN 'power_tower' then 900 WHEN 'power_tower' then 900

View File

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