From 67be896e0a005a6c4b700d4c4a747dfe59783490 Mon Sep 17 00:00:00 2001 From: lukasmartinelli Date: Sun, 30 Oct 2016 10:44:21 +0100 Subject: [PATCH] Fallback to name for name_en --- layers/place/city.sql | 8 ++++++-- layers/place/country.sql | 4 ++-- layers/place/state.sql | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/layers/place/city.sql b/layers/place/city.sql index 5093eb66..75f74d03 100644 --- a/layers/place/city.sql +++ b/layers/place/city.sql @@ -1,13 +1,17 @@ CREATE OR REPLACE FUNCTION layer_city(bbox geometry, zoom_level int, pixel_width numeric) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class city_class, "rank" int) AS $$ - SELECT osm_id, geometry, name, name_en, place, "rank" + SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, place AS class, "rank" FROM osm_city_point WHERE geometry && bbox AND ((zoom_level = 2 AND "rank" = 1) OR (zoom_level BETWEEN 3 AND 7 AND "rank" <= zoom_level) ) UNION ALL - SELECT osm_id, geometry, name, name_en, place, COALESCE("rank", gridrank + 10) FROM ( + SELECT osm_id, geometry, name, + COALESCE(NULLIF(name_en, ''), name) AS name_en, + place AS class, + COALESCE("rank", gridrank + 10) + FROM ( SELECT osm_id, geometry, name, name_en, place, "rank", row_number() OVER ( PARTITION BY LabelGrid(geometry, 150 * pixel_width) diff --git a/layers/place/country.sql b/layers/place/country.sql index 82511b64..896e38e9 100644 --- a/layers/place/country.sql +++ b/layers/place/country.sql @@ -1,6 +1,6 @@ CREATE OR REPLACE FUNCTION layer_country(bbox geometry, zoom_level int) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, "rank" int) AS $$ - SELECT osm_id, geometry, name, name_en, "rank" FROM osm_country_point - WHERE geometry && bbox AND "rank" <= zoom_level + SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, "rank" FROM osm_country_point + WHERE geometry && bbox AND "rank" <= zoom_level AND name <> '' ORDER BY "rank" ASC, length(name) ASC; $$ LANGUAGE SQL IMMUTABLE; diff --git a/layers/place/state.sql b/layers/place/state.sql index 3ed1b923..d4ba508b 100644 --- a/layers/place/state.sql +++ b/layers/place/state.sql @@ -1,8 +1,9 @@ CREATE OR REPLACE FUNCTION layer_state(bbox geometry, zoom_level int) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, "rank" int) AS $$ - SELECT osm_id, geometry, name, name_en, "rank" + SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, "rank" FROM osm_state_point WHERE geometry && bbox AND + name <> '' AND ("rank" + 2 <= zoom_level) AND ( zoom_level >= 5 OR is_in_country IN ('United Kingdom', 'USA', 'Россия', 'Brasil', 'China', 'India') OR