Hi! I noticed that Geometry.Overlaps in ogr sometimes returns "no overlap" while intersection is not empty. For example:
Geometry 1:POLYGON ((-1 -1,-1 1,1 1,1 -1,-1 -1)) boundaryLINESTRING (-1 -1,-1 1,1 1,1 -1,-1 -1) Geometry 2:POLYGON ((-2 -2,-2 2,2 2,2 -2,-2 -2)) boundaryLINESTRING (-2 -2,-2 2,2 2,2 -2,-2 -2) Overlaps? NO Intrsects? YES Intersection: POLYGON ((-1 -1,-1 1,1 1,1 -1,-1 -1)) This contradicts description of the overlap method in geos or am I doing something wrong? The Java code to reproduce the condition attached. -- Alex Sorokine sorok...@ornl.gov ==== cut here ==== import org.gdal.ogr.Geometry; import org.gdal.ogr.ogr; public class OverlapTest { public static void main(String[] args) { Geometry lr1 = new Geometry(ogr.wkbLinearRing); lr1.AddPoint_2D(-1.0, -1.0); lr1.AddPoint_2D(-1.0, 1.0); lr1.AddPoint_2D( 1.0, 1.0); lr1.AddPoint_2D( 1.0, -1.0); lr1.AddPoint_2D(-1.0, -1.0); Geometry geom1 = new Geometry(ogr.wkbPolygon); geom1.AddGeometry(lr1); System.out.println("Geometry 1:" + geom1.ExportToWkt()); System.out.println(" boundary" + geom1.GetBoundary().ExportToWkt()); Geometry lr2 = new Geometry(ogr.wkbLinearRing); lr2.AddPoint_2D(-2.0, -2.0); lr2.AddPoint_2D(-2.0, 2.0); lr2.AddPoint_2D( 2.0, 2.0); lr2.AddPoint_2D( 2.0, -2.0); lr2.AddPoint_2D(-2.0, -2.0); Geometry geom2 = new Geometry(ogr.wkbPolygon); geom2.AddGeometry(lr2); System.out.println("Geometry 2:" + geom2.ExportToWkt()); System.out.println(" boundary" + geom2.GetBoundary().ExportToWkt()); System.out.print("Overlaps? "); if (geom1.Overlaps(geom2)) System.out.println("YES"); else System.out.println("NO"); System.out.print("Intrsects? "); if (geom1.Intersect(geom2)) System.out.println("YES"); else System.out.println("NO"); System.out.println("Intersection: " + geom1.Intersection(geom2).ExportToWkt()); } } _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev