#575 closed defect (fixed)
ST_Union fails on a group of linestrings.
Reported by: | jeffadams78 | Owned by: | pramsey |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 1.5.3 |
Component: | postgis | Version: | 1.5.X |
Keywords: | Cc: | jadams |
Description
When I attempt to union these 16 linestrings (quite long, so I attached as a file), I get the following error:
NOTICE: TopologyException: found non-noded intersection between LINESTRING (-118.323 33.7869, -118.323 33.7869) and LINESTRING (-118.323 33.7869, -118.323 33.7869) at -118.323 33.7869 ERROR: GEOS union() threw an error! ********** Error ********** ERROR: GEOS union() threw an error! SQL state: XX000
This seems like a bug. Isn't it supposed to be adding the node it complains is missing? This same union works fine in JTS.
NOTE: The linestrings printed in the error message are not in fact zero-length, they appear that way due to the truncation of significant digits in the error output. I tried reprojecting my data (the original data, not this particular tiny set) into 3310 and got the same error, but then the error message printed enough significant digits to make it clear they are very short, but not zero-length.
Attachments (1)
Change History (6)
by , 14 years ago
Attachment: | brokenunion.sql added |
---|
comment:1 by , 14 years ago
Sorry, forgot to include version info:
POSTGIS="1.5.1" GEOS="3.2.0-CAPI-1.6.0" PROJ="Rel. 4.6.1, 21 August 2008" LIBXML="2.7.6" USE_STATS
comment:2 by , 14 years ago
I am having similar problems with a union of linestrings. Looking around on the web, it seems like this is a known problem. Proposed solutions seem to direct towards using another program, such as JTS.
Jeffadams78 - Did you ever find a postgis solution to this problem?
Thanks, David
comment:3 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
The sql runs fine here:
POSTGIS="2.0.0SVN" GEOS="3.3.0-CAPI-1.7.0" PROJ="Rel. 4.7.1, 23 September 2009"
LIBXML="2.7.6" USE_STATS
Try upgrading your GEOS to current trunk (keeping the existing postgis should be fine)
comment:4 by , 14 years ago
Cc: | added |
---|
strk: Yes upgrading to the GEOS trunk fixes it.
For others who want to try this:
- Download the trunk from http://geos.osgeo.org/snapshots/
- tar -xvfj the file
- configure, make, sudo make install
- Remove the existing libgeos-3.2.2.so, libgeos_c.so, libgeos_c.so.1 files from /usr/lib, replace with libgeos-3.3.0.so, libgeos_c.so, and libgeos_c.so.1 files from /usr/local/lib.
- Restart postgresql.
- Verify you now are using GEOS 3.3.0 by running "SELECT postgis_full_version()".
comment:5 by , 14 years ago
Step 5 should say remove existing libgeos* from /usr/lib since the file names aren't exactly the same.
SQL statement that generates the error.