Mercurial > gemma
diff schema/geo_functions.sql @ 2833:1b6840093eac
Prevent calculation of wrong UTM zones
Using geography as input data type will ensure only lon/lat
coordinates are fed into the calculation.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 27 Mar 2019 15:39:52 +0100 |
parents | 661597546ed9 |
children | 522ed5eb449c |
line wrap: on
line diff
--- a/schema/geo_functions.sql Wed Mar 27 15:37:36 2019 +0100 +++ b/schema/geo_functions.sql Wed Mar 27 15:39:52 2019 +0100 @@ -4,19 +4,20 @@ -- SPDX-License-Identifier: AGPL-3.0-or-later -- License-Filename: LICENSES/AGPL-3.0.txt --- Copyright (C) 2018 by via donau +-- Copyright (C) 2018, 2019 by via donau -- – Österreichische Wasserstraßen-Gesellschaft mbH -- Software engineering by Intevation GmbH -- Author(s): -- * Sascha L. Teichmann <sascha.teichmann@intevation.de> +-- * Tom Gottfried <tom@intevation.de> -CREATE OR REPLACE FUNCTION best_utm(g geometry) RETURNS integer AS +CREATE OR REPLACE FUNCTION best_utm(g geography) RETURNS integer AS $$ DECLARE center geometry; BEGIN - SELECT ST_Centroid(g) INTO center; + SELECT CAST(ST_Centroid(g) AS geometry) INTO center; RETURN CASE WHEN ST_Y(center) > 0 THEN 32600