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