title: Shapely unable to split line on point due to precision issues
body: <p>I am trying to interpolate a point onto a <code>LineString</code> in Shapely and then split the linestring accordingly. However, due to a precision error, Shapely thinks that the interpolated point is not on the <code>linestring</code>, and therefore the <code>split</code> operation does not work.</p>
  
  <p>Here is an example: </p>
  
  <pre><code>from shapely.ops import split
  from shapely.geometry import LineString, Point
  
  ### Initialize point and line
  line = LineString([(0.123,0.456),(5.678,7.890),(12.135,6.789)])    
  point = Point(4.785,8.382)   
  
  ### Interpolate point onto line
  new_point = line.interpolate(line.project(point))
  print new_point
  &gt;&gt; POINT (5.593949278213755 7.777518800043393)
  
  ### BUT: line does not intersect the interpolated point
  line.intersects(new_point)
  &gt;&gt; False
  
  ### EVEN THOUGH: distance between them is essentially (not exactly) zero
  line.distance(new_point)
  &gt;&gt; 0.0
  
  ### THEREFORE: line cannot be split using the new point
  len(split(line, new_point))
  &gt;&gt; 1
  </code></pre>
  
  <p>I think the problem is as follows:<br>
   1. I rounded the original point/line coordinates so that they do not run up against the precision limits of the machine.<br>
   2. However, the INTERPOLATED point has very high precision. I don't know how to control this.<br>
   3. In theory, I could round the coordinates of this new point, but that doesn't seem to ensure that the new point is on the line either.   </p>
  
  <p>Related questions <a href="https://gis.stackexchange.com/questions/188622/is-it-possible-to-round-all-coordinates-in-shapely">here</a>, <a href="https://stackoverflow.com/questions/24415806/coordinate-of-the-closest-point-on-a-line">here</a>, and <a href="https://gis.stackexchange.com/questions/203048/split-lines-at-points-using-shapely">here</a>.</p>