Refinements in POI_Ranking
This commit is contained in:
parent
14238e9863
commit
df3f592513
@ -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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user