Mercurial > gemma
changeset 3732:b1fe61b58048
Allow to search gauges per ISRS code.
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Mon, 24 Jun 2019 11:22:16 +0200 |
parents | 0d45a3c34900 |
children | 1504856c9378 |
files | schema/search_functions.sql |
diffstat | 1 files changed, 21 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/schema/search_functions.sql Mon Jun 24 11:21:41 2019 +0200 +++ b/schema/search_functions.sql Mon Jun 24 11:22:16 2019 +0200 @@ -57,14 +57,27 @@ DECLARE _result jsonb; BEGIN - SELECT COALESCE(json_agg(r),'[]') - INTO _result - FROM (SELECT objname AS name, - ST_AsGeoJSON(geom)::json AS geom, - 'gauge' AS type - FROM waterway.gauges - WHERE objname ILIKE '%' || search_string || '%' - ORDER BY name) r; + IF is_ISRSstring(search_string) THEN + SELECT COALESCE(json_agg(r),'[]') + INTO _result + FROM ( + SELECT objname AS name, + ST_AsGeoJSON(geom)::json AS geom, + 'gauge' AS type + FROM waterway.gauges + WHERE location = isrs_fromText(search_string) + ORDER BY name) r; + ELSE + SELECT COALESCE(json_agg(r),'[]') + INTO _result + FROM ( + SELECT objname AS name, + ST_AsGeoJSON(geom)::json AS geom, + 'gauge' AS type + FROM waterway.gauges + WHERE objname ILIKE '%' || search_string || '%' + ORDER BY name) r; + END IF; RETURN _result; END; $$;