geometry-api-java icon indicating copy to clipboard operation
geometry-api-java copied to clipboard

the tolerance in intersection of envelopes is not working

Open ladyfish opened this issue 8 years ago • 1 comments

it is not worked when i do the intersection operator by setting the spatial reference which tolerance is 0.001. however the result is not empty. Envelope env1=new Envelope(); env1.setCoords(110.5657682255, 10, 113.5685453456, 15); Envelope env2=new Envelope(); env2.setCoords(113.5685451456, 10, 118.568545, 15); Geometry geo1=(Geometry) env1; Geometry geo2=(Geometry) env2; String srs=""; SpatialReference insrs=SpatialReference.create(srs); System.out.println(insrs.getTolerance());//0.001 Geometry geo3=GeometryEngine.intersect(geo1, geo2, insrs); if(!geo3.isEmpty()){ //it is not empty System.out.println(GeometryEngine.geometryToWkt(geo3, 0)); //POLYGON ((113.5685451456 10, 113.5685453456 10, 113.5685453456 15, 113.5685451456 15, 113.5685451456 10)) }

ladyfish avatar Sep 18 '16 12:09 ladyfish

@ladyfish Some internal optimization makes the intersection code to intersect envelopes without taking the tolerance into account and returns a non-simple polygon. If you'd pass polygons you'd see it being taken it into account. I've edited the issue header.

stolstov avatar Sep 18 '16 13:09 stolstov