<div dir="ltr"><div>I've set up a branch to allow the use of a fixed precision model with ST_Intersection, ST_Difference, ST_SymmetricDifference, and ST_Union (all variants), on the GEOS backend.  There are some broader design implications to introducing a precision parameter, so I wanted to see if the group sees any problems with this approach, which is:</div><div><br></div><div>* The precision is not encoded in the geometry; the user must specify the precision when invoking the function, like ST_Intersection(a.geom, b.geom, 1e-4).  I think it's best to avoid encoding the precision into the geometry (like we do for SRID) for the time being, mostly because the precision we're specifying for these overlay functions refers to a GEOS feature rather than any global concept of precision.  Since a geometry's encoded precision would be ignored by ST_Intersects or ST_ApproximateMedialAxis, I think it's best left as an explicit argument where it is supported for now.</div><div><br></div><div>* GEOS provides the ability to reduce a geometry's precision, cleaning up topological collapses that may result from coordinate movement.  These functions don't take advantage of this behavior; they assume that the user is providing geometry whose coordinates are in fact precise at the level specified.  I do think there should be a separate ST_ReducePrecision to allow a user to take advantage of this feature.</div><div><br></div><div>Branch is at <a href="https://github.com/postgis/postgis/pull/100">https://github.com/postgis/postgis/pull/100</a></div><div><br></div><div>Any thoughts?</div><div><br></div><div>Dan</div></div>