[postgis-devel] [PostGIS] #2066: ST_DumpPoints may return latitude just over 90 depending on execution order
PostGIS
trac at osgeo.org
Thu Oct 25 03:57:24 PDT 2012
#2066: ST_DumpPoints may return latitude just over 90 depending on execution order
---------------------------+------------------------------------------------
Reporter: realityexists | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 2.1.0
Component: postgis | Version: trunk
Keywords: |
---------------------------+------------------------------------------------
Windows 7 x64, PostgreSQL 9.2.1, PostGIS r10557
I've run into a weird problem, apparently with ST_DumpPoints. I have a
function which "normalises" geometries to ensure that their coordinates
are within the -180/+180 and -90/+90 range, so they can be cast to
geography. On PostgreSQL 9.1.4 this worked fine. When I upgraded to 9.2.1
it began to return incorrect results, translating some latitudes of 90 to
-90, but not consistently. It appears that ST_DumpPoints sometimes returns
points with latitude just over 90 (somewhere between 90.000000000000001
and 90.0000000000001), which caused my function to translate them to -90.
Whether it returns these "90+" points seems to depend on several things:
1) The order in which geometries are evaluated.
2) Whether I attempt to cast the geometry to geography beforehand.
3) PostgreSQL version.
The attached repro contains two polygons and the function is run on the
exterior ring of each. If it's done for "ULMM" first, then "PAZA" the
results are correct (no 90+ latitudes), but if "ULMM" is processed second
then the 90+ latitudes occur - but only on PostgreSQL 9.2, not 9.1. If you
comment out the cast to geography then they occur regardless of order and
PostgreSQL version.
While there's an easy workaround, I'm still concerned that these "just out
of range" latitudes may cause other problems down the track. I would
expect ST_DumpPoints to never return such values or, if the problem is
with the input data, at least return them consistently.
--
Ticket URL: <http://trac.osgeo.org/postgis/ticket/2066>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-devel
mailing list