[geos-devel] Re: [GEOS] #323: A point interpolated from a line does not always intersect the same line

GEOS geos-trac at osgeo.org
Sat Jan 30 22:30:31 EST 2010


#323: A point interpolated from a line does not always intersect the same line
--------------------------+-------------------------------------------------
 Reporter:  starsareblue  |        Owner:  geos-devel at lists.osgeo.org
     Type:  defect        |       Status:  reopened                  
 Priority:  major         |    Milestone:                            
Component:  Default       |      Version:  3.2.0                     
 Severity:  Unassigned    |   Resolution:                            
 Keywords:                |  
--------------------------+-------------------------------------------------
Changes (by starsareblue):

  * status:  closed => reopened
  * resolution:  invalid =>

Comment:

 That is true, but in the following case, the projection point (0, -1) is
 exactly representable.  Is it perhaps an issue with the MultiLineString?

 I would expect the intersection of the following MultiLineString with
 the Point to produce either (0, -1) or (1, 0) but instead it produces
 (-1, 1).  The distance() function works correctly though.  So
 interpolation/projection onto a MultiLineString must be done manually
 for now for each individual LineString.

 {{{
 import shapely.geometry as g
 point = g.Point(1, 0)
 l1 = g.LineString([(0, 2), (0,0)])
 l2 = g.LineString([(-1, 1), (1, 1)])
 m = g.MultiLineString([l1.coords, l2.coords])
 assert m.interpolate(m.project(point)).coords[0] == (-1, 1) # True, but
 wrong
 assert m.interpolate(m.project(point)).coords[0] == (0, -1) # Fails
 assert m.interpolate(m.project(point)).coords[0] == (1, 0) # Fails
 }}}

-- 
Ticket URL: <http://trac.osgeo.org/geos/ticket/323#comment:2>
GEOS <http://geos.refractions.net/>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list