[geos-devel] Robustness of Binary Predicates
todd.jellett at caris.com
Fri Mar 3 07:57:21 EST 2006
Yes I indicated in my first post that the Binary Predicates seemed like
they were trying to "work at infinite precision" (ie on graph paper) and
were not honouring the precision model.
I chose my example carefully to illustrate the problem. I chose the end
point of the second LineString to be the primary intersection point
because geos actually did find the correct intersection for those
geometries. If however, I chose L2 to end on one of the "extraneous
intersection points" but not cross or touch any other part of L1, either
(4,2) or (6,3), the geos intersection does not fare as well (because it
does not see these).
So there are 2 problems:
1) The Binary Predicates are not honouring the precision model.
2) Geos does not detect "extraneous intersection points" in either the
Binary Predicates or the set theoretic (intersection, union, differences).
Although the frequency of this phenomenon (extraneous intersection
points) decreases as the precision becomes finer, they do occur even
when using a FLOATING precision model (because the computer runs under a
FIXED model with 15 significant figures). Whether they occur or not is a
function of the input geometries.
Paul Ramsey wrote:
> I am surprised Martin has not jumped in here with the definitive
> answer. It looks like the intersection is being done with a precision
> model and the boolean test is not... on graph paper those lines to
> not touch, but they do get within the precision tolerance of one
> geos-devel mailing list
> geos-devel at geos.refractions.net
More information about the geos-devel