diff --git a/layers/place/city.sql b/layers/place/city.sql index de7977a..59b6286 100644 --- a/layers/place/city.sql +++ b/layers/place/city.sql @@ -5,6 +5,7 @@ -- etldoc: osm_city_point -> layer_city:z2_14 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, name_de text, tags hstore, place city_place, "rank" int, capital int) AS $$ + SELECT * FROM ( SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, @@ -49,5 +50,6 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de OR (zoom_level = 9 AND (gridrank <= 8 OR "rank" IS NOT NULL)) OR (zoom_level = 10 AND (gridrank <= 12 OR "rank" IS NOT NULL)) OR (zoom_level BETWEEN 11 AND 12 AND (gridrank <= 14 OR "rank" IS NOT NULL)) - OR (zoom_level >= 13); + OR (zoom_level >= 13) + ) as city_all; $$ LANGUAGE SQL IMMUTABLE; diff --git a/layers/place/layer.sql b/layers/place/layer.sql index 193ed0b..dd6381f 100644 --- a/layers/place/layer.sql +++ b/layers/place/layer.sql @@ -6,6 +6,7 @@ CREATE OR REPLACE FUNCTION layer_place(bbox geometry, zoom_level int, pixel_widt RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, "rank" int, capital INT, iso_a2 TEXT) AS $$ + SELECT * FROM ( -- etldoc: osm_continent_point -> layer_place:z0_3 SELECT @@ -94,4 +95,5 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, NULL::text AS iso_a2 FROM layer_city(bbox, zoom_level, pixel_width) ORDER BY "rank" ASC + ) AS place_all $$ LANGUAGE SQL IMMUTABLE;