<!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>