[postgis-users] st_intersection error

nicklas.aven at jordogskog.no nicklas.aven at jordogskog.no
Wed Sep 16 01:23:23 PDT 2009


Hallo Horst The precision problem is not the vertexes that they have in common. They are exactly the same. The problem is that extra vertex that only appears in one of the lines. It will still not be exactly on the line. I think the best solution is to use a thin buffer sile 
select st_intersection(a.the_geom, st_buffer(b.the_geom,0.00001)), a.myid
from aline1 as a, aline2 as b One problem here might be that, as st_buffer works today you will probably get an extra vertex in start and end of your resulting linestring very close to the original vertexes because the buffer will cause an intersection buffered in all directions (new possibilities in 1.5 to avoid that :-) )  Or actually in your case you will only get that extra vertex on the west part because there the line 1 changes direction. On the east side the vertex is just moved a little bit. Hope that helpsNicklas 2009-09-16 Düster Horst wrote:

>
Martin, Nicklas
>>
Thank you for your responses. To avoid precision problems I modified my query to:
>>
select st_intersection(st_snaptogrid(a.the_geom,0.01), st_snaptogrid(b.the_geom,0.01)), a.myid
>from aline1 as a, aline2 as b
>>
As the result I do get a MULTIPOINT geometry with three points. These points are exactly the vertex points of my expected LINESTRING geometry. Why not a LINESTRING?
>>
Regards
>Horst
>>
------------------------------------------------
>>
Dr. Horst Düster
>Stv. Amtschef / GIS-Koordinator 
>>
Kanton Solothurn
>Bau- und Justizdepartement
>Amt für Geoinformation
>SO!GIS Koordination
>Rötistrasse 4
>CH-4501 Solothurn
>>
Telefon ++41(0)32 627 25 32
>Telefax ++41(0)32 627 22 14
>>
mailto:horst.duester at bd.so.ch
>www.agi.so.ch
>>
-----Ursprüngliche Nachricht-----
>Von: Martin Davis [mailto:mbdavis at refractions.net]
>Gesendet am: Dienstag, 15. September 2009 17:54
>An: PostGIS Users Discussion; Martin Davis
>Betreff: Re: [postgis-users] st_intersection error
>>
Same result in JTS.
>>
As Nicklas points out, this is a problem of precision. The software is 
>working as designed, but it's not designed to use it to perform 
>intersections with a tolerance.
>>
Some more sophisticated approach is required, such as vertex snapping 
>the lines to a given tolerance, or perhaps using a narrow buffer and 
>some sort of segment-based containment tests.
>>
strk wrote:
>> On Tue, Sep 15, 2009 at 11:32:48AM +0200, Düster Horst wrote:
>> 
>>> strk
>>>
>>> I attached the geometries in my initial mail.
>>>
>>> Take a look at aline1.sql and aline2.sql
>>> 
>>
>> I confirm a POINT and a LINESTRING in a COLLECTION
>> is returned by ST_Intersection() with latest version:
>>
>> POSTGIS="1.5.0SVN" GEOS="3.2.0-CAPI-1.6.0" PROJ="Rel. 4.6.0, 21 Dec 2007" USE_STATS
>>
>> Martin, how about JTS ?
>>
>> --strk; 
>>
>> Free GIS & Flash consultant/developer () ASCII Ribbon Campaign
>> http://foo.keybit.net/~strk/services.html /\ Keep it simple! 
>>
>> 
>>
-- 
>Martin Davis
>Senior Technical Architect
>Refractions Research, Inc.
>(250) 383-3022
>>
_______________________________________________
>postgis-users mailing list
>postgis-users at postgis.refractions.net
>postgis.refractions.net/mailman/listinfo/postgis-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20090916/2f44b257/attachment.html>


More information about the postgis-users mailing list