2016-10-29 10:56:58 +02:00

11 lines
398 B
PL/PgSQL

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"
FROM osm_state_point
WHERE geometry && bbox AND (
(zoom_level = 3 AND "rank" <= 1) OR
(zoom_level >= 4)
)
ORDER BY "rank" ASC;
$$ LANGUAGE SQL IMMUTABLE;