<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
On 2010-01-17 23:32, Ahlmark Johan wrote:
<blockquote
cite="mid:575A94F91D20704387D1C69A913E95EE02B0214A@CORRE.ad.smhi.se"
type="cite">
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<meta name="Generator"
content="MS Exchange Server version 6.5.7654.12">
<title>ST_transform in PostGis 1.4.0 gives error</title>
<!-- Converted from text/rtf format -->
<p dir="LTR"><span lang="sv"></span><span lang="sv"><font face="Arial"
size="2">Hi,</font></span><span lang="sv"></span><span lang="sv"></span></p>
<p dir="LTR"><span lang="sv"></span><span lang="sv"></span></p>
<p dir="LTR"><span lang="sv"></span><span lang="sv"></span><span
lang="en-gb"><font face="Arial" size="2">We recently updated PostGis
to version 1.4.0 and after that we have a problem</font></span><span
lang="sv"></span><span lang="sv"></span><span lang="en-gb"> <font
face="Arial" size="2">when t</font></span><span lang="sv"></span><span
lang="sv"></span><span lang="en-gb"><font face="Arial" size="2">r</font></span><span
lang="sv"></span><span lang="sv"></span><span lang="en-gb"><font
face="Arial" size="2">ansforming projections.</font></span><span
lang="sv"></span><span lang="sv"></span><span lang="en-gb"> <font
face="Arial" size="2">The problem I am facing is that</font></span><span
lang="sv"></span><span lang="sv"></span><span lang="en-gb"> <font
face="Arial" size="2">I</font></span><span lang="sv"></span><span
lang="sv"></span><span lang="en-gb"></span><span lang="sv"></span><span
lang="sv"></span><span lang="en-gb"> <font face="Arial" size="2">want
the ST-transform to return null if a projection is unable to be</font></span><span
lang="sv"></span><span lang="sv"></span><span lang="en-gb"> <font
face="Arial" size="2">transform</font></span><span lang="sv"></span><span
lang="sv"></span><span lang="en-gb"></span><span lang="sv"></span><span
lang="sv"></span><span lang="en-gb"> <font face="Arial" size="2">and
not and error. </font></span></p>
</blockquote>
<br>
Hi,<br>
<br>
One quick workaround is to define a wrapper function or directly use
PL/pgSQL (if you need this in a function).<br>
<br>
CREATE OR REPLACE FUNCTION st_transform_null(geometry, integer)<br>
RETURNS geometry AS<br>
$BODY$BEGIN<br>
RETURN st_transform($1, $2);<br>
EXCEPTION WHEN internal_error THEN<br>
RETURN NULL;<br>
END;$BODY$<br>
LANGUAGE 'plpgsql' IMMUTABLE STRICT<br>
COST 100;<br>
<br>
<br>
-- Then try<br>
select st_transform_null(PointFromText('POINT(-117.157
32.7153)',4326),3021);<br>
<br>
See the section "Trapping Errors" in <a
href="http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html">http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html</a>
for details.<br>
<br>
-Mike<br>
</body>
</html>