Mercurial > gemma
view schema/geo_functions.sql @ 2346:4bac5d9cd77d
email_template: changed route from 'importlog' to 'importqueue'
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Wed, 20 Feb 2019 10:42:32 +0100 |
parents | 661597546ed9 |
children | 1b6840093eac |
line wrap: on
line source
-- This is Free Software under GNU Affero General Public License v >= 3.0 -- without warranty, see README.md and license for details. -- SPDX-License-Identifier: AGPL-3.0-or-later -- License-Filename: LICENSES/AGPL-3.0.txt -- Copyright (C) 2018 by via donau -- – Österreichische Wasserstraßen-Gesellschaft mbH -- Software engineering by Intevation GmbH -- Author(s): -- * Sascha L. Teichmann <sascha.teichmann@intevation.de> CREATE OR REPLACE FUNCTION best_utm(g geometry) RETURNS integer AS $$ DECLARE center geometry; BEGIN SELECT ST_Centroid(g) INTO center; RETURN CASE WHEN ST_Y(center) > 0 THEN 32600 ELSE 32700 END + floor((ST_X(center)+180)/6)::int + 1; END; $$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION utm_covers(g geography) RETURNS boolean AS $$ DECLARE user_area geometry; utm integer; BEGIN SELECT area::geometry FROM users.responsibility_areas INTO user_area WHERE country = users.current_user_country(); SELECT best_utm(user_area) INTO utm; RETURN ST_Covers( ST_Transform(user_area, utm), ST_Transform(g::geometry, utm)); END; $$ LANGUAGE plpgsql STABLE;