From eb847606bb911b5e19732fcd5d58a9ae1490b555 Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Wed, 30 Nov 2016 13:43:28 +0000 Subject: [PATCH] Ensure nameless POI have biggest rank --- layers/poi/layer.sql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/layers/poi/layer.sql b/layers/poi/layer.sql index 78e61b3..c0a75ba 100644 --- a/layers/poi/layer.sql +++ b/layers/poi/layer.sql @@ -4,11 +4,12 @@ CREATE OR REPLACE FUNCTION layer_poi(bbox geometry, zoom_level integer, pixel_width numeric) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class text, subclass text, "rank" int) AS $$ - SELECT osm_id, geometry, name, NULLIF(name_en, ''), poi_class(subclass) AS class, subclass, + SELECT osm_id, geometry, NULLIF(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 NULLS LAST + ORDER BY + CASE WHEN name = '' THEN 1 ELSE 0 END ASC, + poi_class_rank(poi_class(subclass)) ASC )::int AS "rank" FROM ( -- etldoc: osm_poi_point -> layer_poi:z14