[postgis-users] Postgis overlapping two linestrings

Rémi Cura remi.cura at gmail.com
Fri Nov 22 09:33:46 PST 2013


I hope you are not runnning into a very annoying precision issue.
If it were the case, you may want to try the patch I just submitted to
GEOS, (https://github.com/Remi-C/libgeos).

and then you would check  like this :
decompose line A into points (ST_DumPPoints)
if any point is on line B : true
else
decompose line B into points
if any point of B in on line A
return true
else return false

(you chekc "point on line" with st_intersects)

Cheers,

Rémi-C


2013/11/22 Rémi Cura <remi.cura at gmail.com>

> You may try
> http://postgis.net/docs/ST_SharedPaths.html
>
> Cheers,
>
> Rémi-C
>
>
> 2013/11/22 Ani Alamo <alamo.ani at gmail.com>
>
>> I tried this function:
>> intersects(buffer(LINESTRING1, 0.001), buffer(LINESTRING2, 0.001))
>> Always gives me "false" result.
>>
>> I don't know what to do!
>>
>>
>> 2013/11/22 Ani Alamo <alamo.ani at gmail.com>
>>
>>> Uhm... exactly I have this linestrings:
>>> LINESTRING(2.118932325 41.398745991,2.168720219 41.385631938)
>>> LINESTRING(2.142346041 41.398526436,2.111181541 41.409216161)
>>>
>>>  intersections gives me:
>>> GeometryCollection: GEOMETRYCOLLECTION EMPTY
>>>
>>> intersects gives me:
>>> false
>>>
>>> but when I see the line drawn on map I see both lines intersect in a
>>> little "section" (strectch). But really when I use intersects or
>>> intersection functions gives me "unavailable intersection"... and when I
>>> use OVERLAPS function
>>> overlaps(buffer(LINESTRING1, 0.001), buffer(LINESTRING2, 0.001)) also
>>> gives me "false".
>>>
>>> Another ideas please??
>>>
>>>
>>> 2013/11/22 James David Smith <james.david.smith at gmail.com>
>>>
>>>> Hi Ani,
>>>>
>>>> Have you looked into st_intersects() ? and st_intersection() ?
>>>>
>>>> http://postgis.refractions.net/docs/ST_Intersects.html
>>>>
>>>> James
>>>>
>>>> On 22 November 2013 16:17, Ani Alamo <alamo.ani at gmail.com> wrote:
>>>> > Hi!
>>>> > I need a specific function to get if two linestring overlaps. e.g.
>>>> > Linestring 1 is Point (0, 0) : Point (10, 0) Linestring 2 is Point
>>>> (0, 0) :
>>>> > Point (3, 0)
>>>> >
>>>> > In this case I need "true" result because LineString 1 overlaps in
>>>> different
>>>> > points like 0,0 1,0 2,0 & 3,0. I dont need the common points, I only
>>>> need if
>>>> > two linestring overlaps or not. I tried with this function in
>>>> postgis...
>>>> >
>>>> > overlaps(buffer(LINESTRING1, 0.001), buffer(LINESTRING2, 0.001))
>>>> > I create a buffer on both linestrings... but muy problem is some
>>>> times works
>>>> > better, some times not.
>>>> >
>>>> > Can you help me please?
>>>> >
>>>> > Thanks!
>>>> >
>>>> > _______________________________________________
>>>> > postgis-users mailing list
>>>> > postgis-users at lists.osgeo.org
>>>> > http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>> _______________________________________________
>>>> postgis-users mailing list
>>>> postgis-users at lists.osgeo.org
>>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>>
>>>
>>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at lists.osgeo.org
>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20131122/fc181463/attachment.html>


More information about the postgis-users mailing list