public virtual void testGeometryOperationSupport() { com.esri.core.geometry.Geometry baseGeom = new com.esri.core.geometry.Point(-130, 10); com.esri.core.geometry.Geometry comparisonGeom = new com.esri.core.geometry.Point (-130, 10); com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(4326); com.esri.core.geometry.Geometry diffGeom = null; int noException = 1; // no exception try { diffGeom = com.esri.core.geometry.GeometryEngine.difference(baseGeom, comparisonGeom , sr); } catch (System.ArgumentException) { noException = 0; } catch (com.esri.core.geometry.GeometryException) { noException = 0; } NUnit.Framework.Assert.AreEqual(noException, 1); }
public static void testWkbImportOnPostgresST() { try { java.sql.Connection con = java.sql.DriverManager.getConnection("jdbc:postgresql://tb.esri.com:5432/new_gdb" , "tb", "tb"); com.esri.core.geometry.OperatorFactoryLocal factory = com.esri.core.geometry.OperatorFactoryLocal .getInstance(); com.esri.core.geometry.OperatorImportFromWkb operatorImport = (com.esri.core.geometry.OperatorImportFromWkb )factory.getOperator(com.esri.core.geometry.Operator.Type.ImportFromWkb); string stmt = "SELECT objectid,sde.st_asbinary(shape) FROM new_gdb.tb.interstates a WHERE objectid IN (2) AND (a.shape IS NULL OR sde.st_geometrytype(shape)::text IN ('ST_MULTILINESTRING','ST_LINESTRING')) LIMIT 1000"; java.sql.PreparedStatement ps = con.prepareStatement(stmt); java.sql.ResultSet rs = ps.executeQuery(); while (rs.next()) { byte[] rsWkbGeom = rs.getBytes(2); com.esri.core.geometry.Geometry geomBorg = null; if (rsWkbGeom != null) { geomBorg = operatorImport.execute(0, com.esri.core.geometry.Geometry.Type.Unknown , java.nio.ByteBuffer.wrap(rsWkbGeom), null); } } ps.close(); con.close(); } catch (System.Exception) { } }
public virtual void OffsetPolygon_(double distance, com.esri.core.geometry.OperatorOffset.JoinType joins) { com.esri.core.geometry.Polygon polygon = new com.esri.core.geometry.Polygon(); polygon.startPath(0, 0); polygon.lineTo(0, 16); polygon.lineTo(16, 16); polygon.lineTo(16, 11); polygon.lineTo(10, 10); polygon.lineTo(10, 12); polygon.lineTo(3, 12); polygon.lineTo(3, 4); polygon.lineTo(10, 4); polygon.lineTo(10, 6); polygon.lineTo(16, 5); polygon.lineTo(16, 0); com.esri.core.geometry.OperatorOffset offset = (com.esri.core.geometry.OperatorOffset )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Offset); com.esri.core.geometry.Geometry outputGeom = offset.execute(polygon, null, distance , joins, 2, 0, null); NUnit.Framework.Assert.IsNotNull(outputGeom); if (distance > 2) { NUnit.Framework.Assert.IsTrue(outputGeom.isEmpty()); } }
public virtual void testOffsetPoint() { try { com.esri.core.geometry.Point point = new com.esri.core.geometry.Point(); point.setXY(0, 0); com.esri.core.geometry.OperatorOffset offset = (com.esri.core.geometry.OperatorOffset )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Offset); com.esri.core.geometry.Geometry outputGeom = offset.execute(point, null, 2, com.esri.core.geometry.OperatorOffset.JoinType .Round, 2, 0, null); NUnit.Framework.Assert.IsNull(outputGeom); } catch (System.Exception) { } try { com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint(); mp.add(0, 0); mp.add(10, 10); com.esri.core.geometry.OperatorOffset offset = (com.esri.core.geometry.OperatorOffset )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Offset); com.esri.core.geometry.Geometry outputGeom = offset.execute(mp, null, 2, com.esri.core.geometry.OperatorOffset.JoinType .Round, 2, 0, null); NUnit.Framework.Assert.IsNull(outputGeom); } catch (System.Exception) { } }
public virtual void testMultiPointAndMultiPoint2() { com.esri.core.geometry.MultiPoint basePl = new com.esri.core.geometry.MultiPoint( ); basePl.add(new com.esri.core.geometry.Point(-116, 20)); basePl.add(new com.esri.core.geometry.Point(-118, 21)); com.esri.core.geometry.MultiPoint compPl = new com.esri.core.geometry.MultiPoint( ); compPl.add(new com.esri.core.geometry.Point(-116, 20)); compPl.add(new com.esri.core.geometry.Point(-118, 21)); int noException = 1; // no exception com.esri.core.geometry.Geometry intersectGeom = null; try { intersectGeom = com.esri.core.geometry.GeometryEngine.intersect(basePl, compPl, com.esri.core.geometry.SpatialReference .create(4326)); } catch (System.Exception) { noException = 0; } NUnit.Framework.Assert.AreEqual(noException, 1); NUnit.Framework.Assert.IsNotNull(intersectGeom); NUnit.Framework.Assert.IsTrue(intersectGeom.getType() == com.esri.core.geometry.Geometry.Type .MultiPoint); com.esri.core.geometry.MultiPoint ip = (com.esri.core.geometry.MultiPoint)intersectGeom; NUnit.Framework.Assert.AreEqual(-116, 0.1E7, ip.getPoint(0).getX()); NUnit.Framework.Assert.AreEqual(20, 0.1E7, ip.getPoint(0).getY()); NUnit.Framework.Assert.AreEqual(-118, 0.1E7, ip.getPoint(0).getX()); NUnit.Framework.Assert.AreEqual(21, 0.1E7, ip.getPoint(0).getY()); }
public virtual void testIntersectBetweenPolylineAndPolygon() { com.esri.core.geometry.Polyline basePl = new com.esri.core.geometry.Polyline(); basePl.startPath(new com.esri.core.geometry.Point(-117, 20)); basePl.lineTo(new com.esri.core.geometry.Point(-117, 10)); basePl.lineTo(new com.esri.core.geometry.Point(-130, 10)); basePl.lineTo(new com.esri.core.geometry.Point(-130, 20)); basePl.lineTo(new com.esri.core.geometry.Point(-117, 20)); com.esri.core.geometry.Polygon compPl = new com.esri.core.geometry.Polygon(); compPl.startPath(-116, 20); compPl.lineTo(-131, 10); compPl.lineTo(-121, 50); com.esri.core.geometry.Geometry intersectGeom = null; int noException = 1; // no exception try { intersectGeom = com.esri.core.geometry.GeometryEngine.intersect(basePl, compPl, com.esri.core.geometry.SpatialReference .create(4326)); } catch (System.Exception) { noException = 0; } NUnit.Framework.Assert.IsNotNull(intersectGeom); }
public virtual void testMultiPointAndMultiPoint3() { com.esri.core.geometry.MultiPoint basePl = new com.esri.core.geometry.MultiPoint( ); basePl.add(new com.esri.core.geometry.Point(-116, 21)); basePl.add(new com.esri.core.geometry.Point(-117, 20)); com.esri.core.geometry.MultiPoint compPl = new com.esri.core.geometry.MultiPoint( ); compPl.add(new com.esri.core.geometry.Point(-116, 20)); compPl.add(new com.esri.core.geometry.Point(-117, 21)); compPl.add(new com.esri.core.geometry.Point(-118, 20)); compPl.add(new com.esri.core.geometry.Point(-119, 21)); int noException = 1; // no exception com.esri.core.geometry.Geometry intersectGeom = null; try { intersectGeom = com.esri.core.geometry.GeometryEngine.intersect(basePl, compPl, com.esri.core.geometry.SpatialReference .create(4326)); } catch (System.Exception) { noException = 0; } NUnit.Framework.Assert.AreEqual(noException, 1); NUnit.Framework.Assert.IsTrue(intersectGeom.isEmpty()); }
public virtual void testPointAndPolyline1() { com.esri.core.geometry.Point basePl = new com.esri.core.geometry.Point(-116, 20); com.esri.core.geometry.Polyline compPl = new com.esri.core.geometry.Polyline(); compPl.startPath(new com.esri.core.geometry.Point(-116, 20)); compPl.lineTo(new com.esri.core.geometry.Point(-131, 10)); compPl.lineTo(new com.esri.core.geometry.Point(-121, 50)); int noException = 1; // no exception com.esri.core.geometry.Geometry intersectGeom = null; try { intersectGeom = com.esri.core.geometry.GeometryEngine.intersect(basePl, compPl, com.esri.core.geometry.SpatialReference .create(4326)); } catch (System.Exception) { noException = 0; } NUnit.Framework.Assert.AreEqual(noException, 1); NUnit.Framework.Assert.IsNotNull(intersectGeom); NUnit.Framework.Assert.IsTrue(intersectGeom.getType() == com.esri.core.geometry.Geometry.Type .Point); com.esri.core.geometry.Point ip = (com.esri.core.geometry.Point)intersectGeom; NUnit.Framework.Assert.AreEqual(-116, 0.1E7, ip.getX()); NUnit.Framework.Assert.AreEqual(20, 0.1E7, ip.getY()); }
public static void test1() { com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal .getInstance(); com.esri.core.geometry.OperatorGeneralize op = (com.esri.core.geometry.OperatorGeneralize )engine.getOperator(com.esri.core.geometry.Operator.Type.Generalize); com.esri.core.geometry.Polygon poly = new com.esri.core.geometry.Polygon(); poly.startPath(0, 0); poly.lineTo(1, 1); poly.lineTo(2, 0); poly.lineTo(3, 2); poly.lineTo(4, 1); poly.lineTo(5, 0); poly.lineTo(5, 10); poly.lineTo(0, 10); com.esri.core.geometry.Geometry geom = op.execute(poly, 2, true, null); com.esri.core.geometry.Polygon p = (com.esri.core.geometry.Polygon)geom; com.esri.core.geometry.Point2D[] points = p.getCoordinates2D(); NUnit.Framework.Assert.IsTrue(points.Length == 4); NUnit.Framework.Assert.IsTrue(points[0].x == 0 && points[0].y == 0); NUnit.Framework.Assert.IsTrue(points[1].x == 5 && points[1].y == 0); NUnit.Framework.Assert.IsTrue(points[2].x == 5 && points[2].y == 10); NUnit.Framework.Assert.IsTrue(points[3].x == 0 && points[3].y == 10); com.esri.core.geometry.Geometry geom1 = op.execute(geom, 5, false, null); p = (com.esri.core.geometry.Polygon)geom1; points = p.getCoordinates2D(); NUnit.Framework.Assert.IsTrue(points.Length == 3); NUnit.Framework.Assert.IsTrue(points[0].x == 0 && points[0].y == 0); NUnit.Framework.Assert.IsTrue(points[1].x == 5 && points[1].y == 10); NUnit.Framework.Assert.IsTrue(points[2].x == 5 && points[2].y == 10); geom1 = op.execute(geom, 5, true, null); p = (com.esri.core.geometry.Polygon)geom1; points = p.getCoordinates2D(); NUnit.Framework.Assert.IsTrue(points.Length == 0); }
public virtual void testTouchPointLineCR183227() { // Tests CR 183227 com.esri.core.geometry.Geometry baseGeom = new com.esri.core.geometry.Point(-130, 10); com.esri.core.geometry.Polyline pl = new com.esri.core.geometry.Polyline(); // pl.startPath(new Point(-130, 10)); pl.startPath(-130, 10); pl.lineTo(-131, 15); pl.lineTo(-140, 20); com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(4326); bool isTouched; bool isTouched2; isTouched = com.esri.core.geometry.GeometryEngine.touches(baseGeom, pl, sr); isTouched2 = com.esri.core.geometry.GeometryEngine.touches(pl, baseGeom, sr); NUnit.Framework.Assert.IsTrue(isTouched && isTouched2); { com.esri.core.geometry.Geometry baseGeom2 = (com.esri.core.geometry.Geometry) new com.esri.core.geometry.Point(-131, 15); bool bIsTouched; bool bIsTouched2; bIsTouched = com.esri.core.geometry.GeometryEngine.touches(baseGeom2, pl, sr); bIsTouched2 = com.esri.core.geometry.GeometryEngine.touches(pl, baseGeom2, sr); NUnit.Framework.Assert.IsTrue(!bIsTouched && !bIsTouched2); } }
public static void testClipIssue258243() { com.esri.core.geometry.Polygon poly1 = new com.esri.core.geometry.Polygon(); poly1.startPath(21.476191371901479, 41.267022001907215); poly1.lineTo(59.669186665158051, 36.62700518555863); poly1.lineTo(20.498578117352313, 30.363180148246094); poly1.lineTo(18.342565836615044, 46.303295352085627); poly1.lineTo(17.869569458621626, 23.886816966894159); poly1.lineTo(19.835465558090434, 20); poly1.lineTo(18.83911285048551, 43.515995498114791); poly1.lineTo(20.864485260298004, 20.235921201027757); poly1.lineTo(18.976127544787012, 20); poly1.lineTo(34.290201277718218, 61.801369014954794); poly1.lineTo(20.734727419368866, 20); poly1.lineTo(18.545865698148113, 20); poly1.lineTo(19.730260558565515, 20); poly1.lineTo(19.924806216827005, 23.780315893949187); poly1.lineTo(21.675168105421452, 36.699924873001258); poly1.lineTo(22.500527828912158, 43.703424859922983); poly1.lineTo(42.009527116514818, 36.995486982256089); poly1.lineTo(24.469729873835782, 58.365871758247039); poly1.lineTo(24.573736036545878, 36.268390409195824); poly1.lineTo(22.726502169802746, 20); poly1.lineTo(23.925834885228145, 20); poly1.lineTo(25.495346880936729, 20); poly1.lineTo(23.320941499288317, 20); poly1.lineTo(24.05655665646276, 28.659578774758632); poly1.lineTo(23.205940789341135, 38.491506888710504); poly1.lineTo(21.472847203385509, 53.057228182018044); poly1.lineTo(25.04257681654104, 20); poly1.lineTo(25.880572351149542, 25.16102863979474); poly1.lineTo(26.756283333879658, 20); poly1.lineTo(21.476191371901479, 41.267022001907215); com.esri.core.geometry.Envelope2D env = new com.esri.core.geometry.Envelope2D(); env.setCoords(24.269517325186033, 19.999998900000001, 57.305574253225409, 61.801370114954793 ); try { com.esri.core.geometry.Geometry output_geom = com.esri.core.geometry.OperatorClip .local().execute(poly1, env, com.esri.core.geometry.SpatialReference.create(4326 ), null); com.esri.core.geometry.Envelope envPoly = new com.esri.core.geometry.Envelope(); poly1.queryEnvelope(envPoly); com.esri.core.geometry.Envelope e = new com.esri.core.geometry.Envelope(env); e.intersect(envPoly); com.esri.core.geometry.Envelope clippedEnv = new com.esri.core.geometry.Envelope( ); output_geom.queryEnvelope(clippedEnv); NUnit.Framework.Assert.IsTrue(System.Math.abs(clippedEnv.getXMin() - e.getXMin()) < 1e-10 && System.Math.abs(clippedEnv.getYMin() - e.getYMin()) < 1e-10 && System.Math .abs(clippedEnv.getXMax() - e.getXMax()) < 1e-10 && System.Math.abs(clippedEnv.getYMax () - e.getYMax()) < 1e-10); } catch (System.Exception) { NUnit.Framework.Assert.IsTrue(false); } }
internal static string getJSonStringFromGeometry(com.esri.core.geometry.Geometry geomIn, com.esri.core.geometry.SpatialReference sr) { string jsonStr4Geom = com.esri.core.geometry.GeometryEngine.geometryToJson(sr, geomIn ); string jsonStrNew = "{\"geometryType\":\"" + getGeometryType(geomIn) + "\",\"geometries\":[" + jsonStr4Geom + "]}"; return(jsonStrNew); }
public virtual void testMP2onCR175871() { com.esri.core.geometry.Polygon pg = new com.esri.core.geometry.Polygon(); pg.startPath(-50, 10); pg.lineTo(-50, 12); pg.lineTo(-45, 12); pg.lineTo(-45, 10); com.esri.core.geometry.Polygon pg1 = new com.esri.core.geometry.Polygon(); pg1.startPath(-45, 10); pg1.lineTo(-40, 10); pg1.lineTo(-40, 8); pg.add(pg1, false); try { string jSonStr = com.esri.core.geometry.GeometryEngine.geometryToJson(4326, pg); org.codehaus.jackson.JsonFactory jf = new org.codehaus.jackson.JsonFactory(); org.codehaus.jackson.JsonParser jp = jf.createJsonParser(jSonStr); jp.nextToken(); com.esri.core.geometry.MapGeometry mg = com.esri.core.geometry.GeometryEngine.jsonToGeometry (jp); com.esri.core.geometry.Geometry gm = mg.getGeometry(); NUnit.Framework.Assert.AreEqual(com.esri.core.geometry.Geometry.Type.Polygon, gm. getType()); com.esri.core.geometry.Polygon pgNew = (com.esri.core.geometry.Polygon)gm; NUnit.Framework.Assert.AreEqual(pgNew.getPathCount(), pg.getPathCount()); NUnit.Framework.Assert.AreEqual(pgNew.getPointCount(), pg.getPointCount()); NUnit.Framework.Assert.AreEqual(pgNew.getSegmentCount(), pg.getSegmentCount()); NUnit.Framework.Assert.AreEqual(pg.getPoint(0).getX(), 0.000000001, pgNew.getPoint (0).getX()); NUnit.Framework.Assert.AreEqual(pg.getPoint(1).getX(), 0.000000001, pgNew.getPoint (1).getX()); NUnit.Framework.Assert.AreEqual(pg.getPoint(2).getX(), 0.000000001, pgNew.getPoint (2).getX()); NUnit.Framework.Assert.AreEqual(pg.getPoint(3).getX(), 0.000000001, pgNew.getPoint (3).getX()); NUnit.Framework.Assert.AreEqual(pg.getPoint(0).getY(), 0.000000001, pgNew.getPoint (0).getY()); NUnit.Framework.Assert.AreEqual(pg.getPoint(1).getY(), 0.000000001, pgNew.getPoint (1).getY()); NUnit.Framework.Assert.AreEqual(pg.getPoint(2).getY(), 0.000000001, pgNew.getPoint (2).getY()); NUnit.Framework.Assert.AreEqual(pg.getPoint(3).getY(), 0.000000001, pgNew.getPoint (3).getY()); } catch (System.Exception ex) { string err = ex.Message; System.Console.Out.Write(err); throw; } }
public static void TestUnion_() { com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(10, 20); com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(); pt2.SetXY(10, 10); com.esri.core.geometry.Envelope env1 = new com.esri.core.geometry.Envelope(10, 10, 30, 50); com.esri.core.geometry.Envelope env2 = new com.esri.core.geometry.Envelope(30, 10, 60, 50); com.esri.core.geometry.Geometry[] geomArray = new com.esri.core.geometry.Geometry[] { env1, env2 }; com.esri.core.geometry.SimpleGeometryCursor inputGeometries = new com.esri.core.geometry.SimpleGeometryCursor(geomArray); com.esri.core.geometry.OperatorUnion union = (com.esri.core.geometry.OperatorUnion)com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Union); com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326); com.esri.core.geometry.GeometryCursor outputCursor = union.Execute(inputGeometries, sr, null); com.esri.core.geometry.Geometry result = outputCursor.Next(); }
public virtual void testBufferPoint() { com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(4326); com.esri.core.geometry.Point inputGeom = new com.esri.core.geometry.Point(12, 120 ); com.esri.core.geometry.OperatorBuffer buffer = (com.esri.core.geometry.OperatorBuffer )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Buffer); com.esri.core.geometry.OperatorSimplify simplify = (com.esri.core.geometry.OperatorSimplify )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Simplify); com.esri.core.geometry.Geometry result = buffer.execute(inputGeom, sr, 40.0, null ); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); com.esri.core.geometry.Polygon poly = (com.esri.core.geometry.Polygon)result; int pathCount = poly.getPathCount(); NUnit.Framework.Assert.IsTrue(pathCount == 1); int pointCount = poly.getPointCount(); NUnit.Framework.Assert.IsTrue(System.Math.abs(pointCount - 100.0) < 10); com.esri.core.geometry.Envelope2D env2D = new com.esri.core.geometry.Envelope2D(); result.queryEnvelope2D(env2D); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getWidth() - 80) < 0.01 && System.Math .abs(env2D.getHeight() - 80) < 0.01); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getCenterX() - 12) < 0.001 && System.Math.abs(env2D.getCenterY() - 120) < 0.001); com.esri.core.geometry.NonSimpleResult nsr = new com.esri.core.geometry.NonSimpleResult (); bool is_simple = simplify.isSimpleAsFeature(result, sr, true, nsr, null); NUnit.Framework.Assert.IsTrue(is_simple); { result = buffer.execute(inputGeom, sr, 0, null); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); NUnit.Framework.Assert.IsTrue(result.isEmpty()); } { result = buffer.execute(inputGeom, sr, -1, null); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); NUnit.Framework.Assert.IsTrue(result.isEmpty()); } }
internal static com.esri.core.geometry.Geometry getGeometryFromJSon(string jsonStr ) { com.fasterxml.jackson.core.JsonFactory jf = new com.fasterxml.jackson.core.JsonFactory(); try { com.fasterxml.jackson.core.JsonParser jp = jf.createJsonParser(jsonStr); jp.nextToken(); com.esri.core.geometry.Geometry geom = com.esri.core.geometry.GeometryEngine.jsonToGeometry (jp).getGeometry(); return(geom); } catch (System.Exception) { return(null); } }
public virtual void OffsetPolyline_(double distance, com.esri.core.geometry.OperatorOffset.JoinType joins) { com.esri.core.geometry.Polyline polyline = new com.esri.core.geometry.Polyline(); polyline.startPath(0, 0); polyline.lineTo(6, 0); polyline.lineTo(6, 1); polyline.lineTo(4, 1); polyline.lineTo(4, 2); polyline.lineTo(10, 2); com.esri.core.geometry.OperatorOffset offset = (com.esri.core.geometry.OperatorOffset )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Offset); com.esri.core.geometry.Geometry outputGeom = offset.execute(polyline, null, distance , joins, 2, 0, null); NUnit.Framework.Assert.IsNotNull(outputGeom); }
public static void testDifferenceOnPolyline() { // # * * # // # * @ // # @ * // # * // // /////////////////////////////// // // The polyline drawn in *s represents basePl // The polyline drawn in #s represents compPl // The @ represents their intersection points, so that // the difference polyline will be basePl with two new vertices @ added. com.esri.core.geometry.Polyline basePl = new com.esri.core.geometry.Polyline(); basePl.startPath(new com.esri.core.geometry.Point(-117, 20)); basePl.lineTo(new com.esri.core.geometry.Point(-130, 10)); basePl.lineTo(new com.esri.core.geometry.Point(-120, 50)); com.esri.core.geometry.Polyline compPl = new com.esri.core.geometry.Polyline(); compPl.startPath(new com.esri.core.geometry.Point(-116, 20)); compPl.lineTo(new com.esri.core.geometry.Point(-131, 10)); compPl.lineTo(new com.esri.core.geometry.Point(-121, 50)); com.esri.core.geometry.Geometry diffGeom = com.esri.core.geometry.GeometryEngine. difference(basePl, compPl, com.esri.core.geometry.SpatialReference.create(4326)); NUnit.Framework.Assert.IsTrue(diffGeom is com.esri.core.geometry.Polyline); com.esri.core.geometry.Polyline diffPolyline = (com.esri.core.geometry.Polyline)diffGeom; int pointCountDiffPolyline = diffPolyline.getPointCount(); // first line in comp_pl is 3y = 2x + 292 NUnit.Framework.Assert.AreEqual(3 * 20, 2 * (-116) + 292); NUnit.Framework.Assert.AreEqual(3 * 10, 2 * (-131) + 292); // new points should also lie on this line NUnit.Framework.Assert.IsTrue(3.0 * diffPolyline.getCoordinates2D()[1].y - 2.0 * diffPolyline.getCoordinates2D()[1].x - 292.0 == 0.0); NUnit.Framework.Assert.IsTrue(3.0 * diffPolyline.getCoordinates2D()[3].y - 2.0 * diffPolyline.getCoordinates2D()[3].x - 292.0 == 0.0); for (int i = 0; i < 3; i++) { NUnit.Framework.Assert.IsTrue(basePl.getCoordinates2D()[i].x == diffPolyline.getCoordinates2D ()[2 * i].x); NUnit.Framework.Assert.IsTrue(basePl.getCoordinates2D()[i].y == diffPolyline.getCoordinates2D ()[2 * i].y); } NUnit.Framework.Assert.AreEqual(5, pointCountDiffPolyline); }
public static void testUnion() { com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(10, 20); com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(); pt2.setXY(10, 10); com.esri.core.geometry.Envelope env1 = new com.esri.core.geometry.Envelope(10, 10 , 30, 50); com.esri.core.geometry.Envelope env2 = new com.esri.core.geometry.Envelope(30, 10 , 60, 50); com.esri.core.geometry.Geometry[] geomArray = new com.esri.core.geometry.Geometry [] { env1, env2 }; com.esri.core.geometry.SimpleGeometryCursor inputGeometries = new com.esri.core.geometry.SimpleGeometryCursor (geomArray); com.esri.core.geometry.OperatorUnion union = (com.esri.core.geometry.OperatorUnion )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Union); com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(4326); com.esri.core.geometry.GeometryCursor outputCursor = union.execute(inputGeometries , sr, null); com.esri.core.geometry.Geometry result = outputCursor.next(); }
internal static void simpleTest(com.esri.core.geometry.Geometry point) { NUnit.Framework.Assert.IsTrue(point != null); // point->AddAttribute(VertexDescription::Semantics::Z); // assertTrue(point->HasAttribute(VertexDescription::Semantics::POSITION)); // assertTrue(point.->HasAttribute(VertexDescription::Semantics::Z)); // point->AddAttribute(VertexDescription::Semantics::Z);//duplicate call // assertTrue(point->GetDescription()->GetAttributeCount() == 2); // assertTrue(point->GetDescription()->GetSemantics(1) == // VertexDescription::Semantics::Z); // point->DropAttribute(VertexDescription::Semantics::Z); // assertFalse(point->HasAttribute(VertexDescription::Semantics::Z)); // point->DropAttribute(VertexDescription::Semantics::Z);//duplicate // call // assertFalse(point->HasAttribute(VertexDescription::Semantics::Z)); // assertTrue(point->GetDescription()->GetAttributeCount() == 1); // assertTrue(point->GetDescription()->GetSemantics(0) == // VertexDescription::Semantics::POSITION); // point->AddAttribute(VertexDescription::Semantics::M); // assertTrue(point->HasAttribute(VertexDescription::Semantics::POSITION)); // assertFalse(point->HasAttribute(VertexDescription::Semantics::Z)); // assertTrue(point->HasAttribute(VertexDescription::Semantics::M)); // point->DropAttribute(VertexDescription::Semantics::M); // assertFalse(point->HasAttribute(VertexDescription::Semantics::M)); // // point->AddAttribute(VertexDescription::Semantics::ID); // assertTrue(point->HasAttribute(VertexDescription::Semantics::POSITION)); // assertFalse(point->HasAttribute(VertexDescription::Semantics::Z)); // assertFalse(point->HasAttribute(VertexDescription::Semantics::M)); // point->DropAttribute(VertexDescription::Semantics::ID); // assertFalse(point->HasAttribute(VertexDescription::Semantics::ID)); // / // assertTrue(point->IsEmpty()); // assertTrue(point->GetPointCount() == 0); // assertTrue(point->GetPartCount() == 0); point = null; NUnit.Framework.Assert.IsFalse(point != null); }
public virtual void testPointAndPolygon2() { com.esri.core.geometry.Point basePl = new com.esri.core.geometry.Point(-115, 20); com.esri.core.geometry.Polygon compPl = new com.esri.core.geometry.Polygon(); compPl.startPath(new com.esri.core.geometry.Point(-116, 20)); compPl.lineTo(new com.esri.core.geometry.Point(-131, 10)); compPl.lineTo(new com.esri.core.geometry.Point(-121, 50)); int noException = 1; // no exception com.esri.core.geometry.Geometry intersectGeom = null; try { intersectGeom = com.esri.core.geometry.GeometryEngine.intersect(basePl, compPl, com.esri.core.geometry.SpatialReference .create(4326)); } catch (System.Exception) { noException = 0; } NUnit.Framework.Assert.AreEqual(noException, 1); NUnit.Framework.Assert.IsTrue(intersectGeom.isEmpty()); }
public virtual void testWKB() { try { // JSON -> GEOM -> WKB string strPolygon1 = "{\"xmin\":-1.1663479012889031E7,\"ymin\":4919777.494405342,\"xmax\":-1.1658587043078788E7,\"ymax\":4924669.464215587,\"spatialReference\":{\"wkid\":102100}}"; // String strPolygon1 = // "{\"rings\":[[[-119.152450421001,38.4118009590513],[-119.318825070203,38.5271086243914],[-119.575687062955,38.7029101298904],[-119.889341639399,38.9222515603984],[-119.995254694357,38.9941061536377],[-119.995150114198,39.0634913594691],[-119.994541258334,39.1061318056708],[-119.995527335641,39.1587132866355],[-119.995304181493,39.3115454332125],[-119.996011479298,39.4435009764511],[-119.996165311172,39.7206108077274],[-119.996324660047,41.1775662656441],[-119.993459369715,41.9892049531992],[-119.351692186077,41.9888529749781],[-119.3109421304,41.9891353872811],[-118.185316829038,41.9966370981387],[-117.018864363596,41.9947941808341],[-116.992313337997,41.9947945094663],[-115.947544658193,41.9945994628997],[-115.024862911148,41.996506455953],[-114.269471632824,41.9959242345073],[-114.039072662345,41.9953908974688],[-114.038151248682,40.9976868405942],[-114.038108189376,40.1110466529553],[-114.039844684228,39.9087788600023],[-114.040105338584,39.5386849268845],[-114.044267501155,38.6789958815881],[-114.045090206153,38.5710950539539],[-114.047272999176,38.1376524399918],[-114.047260595159,37.5984784866001],[-114.043939384154,36.9965379371421],[-114.043716435713,36.8418489458647],[-114.037392074194,36.2160228969702],[-114.045105557286,36.1939778840226],[-114.107775185788,36.1210907070504],[-114.12902308363,36.041730493896],[-114.206768869568,36.0172554164834],[-114.233472615347,36.0183310595897],[-114.307587598189,36.0622330993643],[-114.303857056018,36.0871084040611],[-114.316095374696,36.1114380366653],[-114.344233941709,36.1374802520568],[-114.380803116644,36.1509912717765],[-114.443945697733,36.1210532841897],[-114.466613475422,36.1247112590539],[-114.530573568745,36.1550902046725],[-114.598935242024,36.1383354528834],[-114.621610747198,36.1419666834504],[-114.712761724737,36.1051810523675],[-114.728150311069,36.0859627711604],[-114.728966012834,36.0587530361083],[-114.717673567756,36.0367580437018],[-114.736212493583,35.9876483502758],[-114.699275906446,35.9116119537412],[-114.661600122152,35.8804735854242],[-114.662462095522,35.8709599070091],[-114.689867343369,35.8474424944766],[-114.682739704595,35.7647034175617],[-114.688820027649,35.7325957399896],[-114.665091345861,35.6930994107107],[-114.668486064922,35.6563989882404],[-114.654065925137,35.6465840800053],[-114.6398667219,35.6113485698329],[-114.653134321223,35.5848331056108],[-114.649792053474,35.5466373866597],[-114.672215155693,35.5157541647721],[-114.645396168451,35.4507608261463],[-114.589584275424,35.3583787306827],[-114.587889840369,35.30476812919],[-114.559583045727,35.2201828714608],[-114.561039964054,35.1743461616313],[-114.572255261053,35.1400677445931],[-114.582616239058,35.1325604694085],[-114.626440825485,35.1339067529872],[-114.6359090842,35.1186557767895],[-114.595631971944,35.0760579746697],[-114.633779872695,35.0418633504303],[-114.621068606189,34.9989144286133],[-115.626197382816,35.7956983148418],[-115.88576934392,36.0012259572723],[-117.160423771838,36.9595941441767],[-117.838686423167,37.457298239715],[-118.417419755966,37.8866767486211],[-119.152450421001,38.4118009590513]]], \"spatialReference\":{\"wkid\":4326}}"; org.codehaus.jackson.JsonFactory factory = new org.codehaus.jackson.JsonFactory(); org.codehaus.jackson.JsonParser parser = factory.createJsonParser(strPolygon1); parser.nextToken(); com.esri.core.geometry.MapGeometry mapGeom = com.esri.core.geometry.GeometryEngine .jsonToGeometry(parser); com.esri.core.geometry.Geometry geom = mapGeom.getGeometry(); com.esri.core.geometry.OperatorExportToWkb operatorExport = (com.esri.core.geometry.OperatorExportToWkb )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .ExportToWkb); java.nio.ByteBuffer byteBuffer = operatorExport.execute(0, geom, null); byte[] wkb = ((byte[])byteBuffer.array()); // WKB -> GEOM -> JSON com.esri.core.geometry.OperatorImportFromWkb operatorImport = (com.esri.core.geometry.OperatorImportFromWkb )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .ImportFromWkb); geom = operatorImport.execute(0, com.esri.core.geometry.Geometry.Type.Polygon, java.nio.ByteBuffer .wrap(wkb), null); // geom = operatorImport.execute(0, Geometry.Type.Polygon, // byteBuffer); string outputPolygon1 = com.esri.core.geometry.GeometryEngine.geometryToJson(-1, geom); } catch (org.codehaus.jackson.JsonParseException) { } catch (System.IO.IOException) { } }
public virtual void testWKB2() { // JSON -> GEOM -> WKB // String strPolygon1 = // "{\"xmin\":-1.16605115291E7,\"ymin\":4925189.941699997,\"xmax\":-1.16567772126E7,\"ymax\":4928658.771399997,\"spatialReference\":{\"wkid\":102100}}"; string strPolygon1 = "{\"rings\" : [ [ [-1.16605115291E7,4925189.941699997], [-1.16567772126E7,4925189.941699997], [-1.16567772126E7,4928658.771399997], [-1.16605115291E7,4928658.771399997], [-1.16605115291E7,4925189.941699997] ] ], \"spatialReference\" : {\"wkid\" : 102100}}"; org.codehaus.jackson.JsonFactory factory = new org.codehaus.jackson.JsonFactory(); org.codehaus.jackson.JsonParser parser = factory.createJsonParser(strPolygon1); parser.nextToken(); com.esri.core.geometry.MapGeometry mapGeom = com.esri.core.geometry.GeometryEngine .jsonToGeometry(parser); com.esri.core.geometry.Geometry geom = mapGeom.getGeometry(); // simplifying geom com.esri.core.geometry.OperatorSimplify operatorSimplify = (com.esri.core.geometry.OperatorSimplify )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Simplify); com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(102100); geom = operatorSimplify.execute(geom, sr, true, null); com.esri.core.geometry.OperatorExportToWkb operatorExport = (com.esri.core.geometry.OperatorExportToWkb )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .ExportToWkb); java.nio.ByteBuffer byteBuffer = operatorExport.execute(0, geom, null); byte[] wkb = ((byte[])byteBuffer.array()); // // checking WKB correctness // WKBReader jtsReader = new WKBReader(); // com.vividsolutions.jts.geom.Geometry jtsGeom = jtsReader.read(wkb); // System.out.println("jtsGeom = " + jtsGeom); // WKB -> GEOM -> JSON com.esri.core.geometry.OperatorImportFromWkb operatorImport = (com.esri.core.geometry.OperatorImportFromWkb )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .ImportFromWkb); geom = operatorImport.execute(0, com.esri.core.geometry.Geometry.Type.Polygon, java.nio.ByteBuffer .wrap(wkb), null); NUnit.Framework.Assert.IsTrue(!geom.isEmpty()); }
/// <exception cref="java.io.FileNotFoundException"/> public static com.esri.core.geometry.Geometry loadFromTextFileDbg(string textFileName ) { string fullPath = textFileName; // string fullCSVPathName = System.IO.Path.Combine( directoryPath , // CsvFileName); java.io.File fileInfo = new java.io.File(fullPath); java.util.Scanner scanner = new java.util.Scanner(fileInfo); com.esri.core.geometry.Geometry geom = null; // grab first line string line = scanner.nextLine(); string geomTypeString = Sharpen.Runtime.substring(line, 1); if (Sharpen.Runtime.equalsIgnoreCase(geomTypeString, "polygon")) { geom = new com.esri.core.geometry.Polygon(); } else { if (Sharpen.Runtime.equalsIgnoreCase(geomTypeString, "polyline")) { geom = new com.esri.core.geometry.Polyline(); } else { if (Sharpen.Runtime.equalsIgnoreCase(geomTypeString, "multipoint")) { geom = new com.esri.core.geometry.MultiPoint(); } else { if (Sharpen.Runtime.equalsIgnoreCase(geomTypeString, "point")) { geom = new com.esri.core.geometry.Point(); } } } } while (line.StartsWith("*")) { if (scanner.hasNextLine()) { line = scanner.nextLine(); } } int j = 0; com.esri.core.geometry.Geometry.Type geomType = geom.getType(); while (scanner.hasNextLine()) { string[] parsedLine = line.split("\\s+"); double xVal = double.parseDouble(parsedLine[0]); double yVal = double.parseDouble(parsedLine[1]); if (j == 0 && (geomType == com.esri.core.geometry.Geometry.Type.Polygon || geomType == com.esri.core.geometry.Geometry.Type.Polyline)) { ((com.esri.core.geometry.MultiPath)geom).startPath(xVal, yVal); } else { if (geomType == com.esri.core.geometry.Geometry.Type.Polygon || geomType == com.esri.core.geometry.Geometry.Type .Polyline) { ((com.esri.core.geometry.MultiPath)geom).lineTo(xVal, yVal); } else { if (geomType == com.esri.core.geometry.Geometry.Type.MultiPoint) { ((com.esri.core.geometry.MultiPoint)geom).add(xVal, yVal); } } } // else if(geomType == Geometry.Type.Point) // Point geom = null;//new Point(xVal, yVal); j++; line = scanner.nextLine(); } scanner.close(); return(geom); }
public static void testDifferenceAndSymmetricDifference() { com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal .getInstance(); com.esri.core.geometry.OperatorDifference differenceOp = (com.esri.core.geometry.OperatorDifference )engine.getOperator(com.esri.core.geometry.Operator.Type.Difference); com.esri.core.geometry.SpatialReference spatialRef = com.esri.core.geometry.SpatialReference .create(102113); com.esri.core.geometry.Polygon polygon1 = makePolygon1(); com.esri.core.geometry.Polygon polygon2 = makePolygon2(); com.esri.core.geometry.Polyline polyline1 = makePolyline1(); com.esri.core.geometry.MultiPoint multipoint1 = makeMultiPoint1(); com.esri.core.geometry.MultiPoint multipoint2 = makeMultiPoint2(); com.esri.core.geometry.MultiPoint multipoint3 = makeMultiPoint3(); com.esri.core.geometry.Point point1 = makePoint1(); com.esri.core.geometry.Point point2 = makePoint2(); com.esri.core.geometry.Envelope envelope1 = makeEnvelope1(); com.esri.core.geometry.Envelope envelope2 = makeEnvelope2(); com.esri.core.geometry.Envelope envelope3 = makeEnvelope3(); com.esri.core.geometry.Polygon outputPolygon = (com.esri.core.geometry.Polygon)differenceOp .execute(polygon1, polygon2, spatialRef, null); double area = outputPolygon.calculateArea2D(); NUnit.Framework.Assert.IsTrue(System.Math.abs(area - 75) <= 0.001); { com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point(-130, 10); com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point(-130, 10); com.esri.core.geometry.Geometry baseGeom = new com.esri.core.geometry.Point(point_1 .getX(), point_1.getY()); com.esri.core.geometry.Geometry comparisonGeom = new com.esri.core.geometry.Point (point_2.getX(), point2.getY()); com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(4326); com.esri.core.geometry.Geometry geom = differenceOp.execute(baseGeom, comparisonGeom , sr, null); } com.esri.core.geometry.OperatorSymmetricDifference symDifferenceOp = (com.esri.core.geometry.OperatorSymmetricDifference )engine.getOperator(com.esri.core.geometry.Operator.Type.SymmetricDifference); outputPolygon = (com.esri.core.geometry.Polygon)symDifferenceOp.execute(polygon1, polygon2, spatialRef, null); area = outputPolygon.calculateArea2D(); NUnit.Framework.Assert.IsTrue(System.Math.abs(area - 150) <= 0.001); com.esri.core.geometry.Polyline outputPolyline = (com.esri.core.geometry.Polyline )differenceOp.execute(polyline1, polygon1, spatialRef, null); double length = outputPolyline.calculateLength2D(); NUnit.Framework.Assert.IsTrue(System.Math.abs(length * length - 50) < 0.001); com.esri.core.geometry.MultiPoint outputMultiPoint = (com.esri.core.geometry.MultiPoint )differenceOp.execute(multipoint1, polygon1, spatialRef, null); int pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 1); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(symDifferenceOp.execute(multipoint1 , point1, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 2); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(symDifferenceOp.execute(multipoint1 , point2, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 4); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.execute(multipoint1 , point1, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 2); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.execute(multipoint1 , point2, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 3); outputPolygon = (com.esri.core.geometry.Polygon)(differenceOp.execute(polygon1, envelope1 , spatialRef, null)); area = outputPolygon.calculateArea2D(); NUnit.Framework.Assert.IsTrue(System.Math.abs(area - 75) <= 0.001); outputPolygon = (com.esri.core.geometry.Polygon)(differenceOp.execute(polygon2, envelope2 , spatialRef, null)); area = outputPolygon.calculateArea2D(); NUnit.Framework.Assert.IsTrue(System.Math.abs(area - 75) <= 0.001); outputPolyline = (com.esri.core.geometry.Polyline)(differenceOp.execute(polyline1 , envelope2, spatialRef, null)); length = outputPolyline.calculateLength2D(); NUnit.Framework.Assert.IsTrue(System.Math.abs(length * length - 50) <= 0.001); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.execute(multipoint1 , envelope2, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 1); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.execute(multipoint2 , envelope2, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 6); outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.execute(multipoint3 , envelope2, spatialRef, null)); pointCount = outputMultiPoint.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 0); com.esri.core.geometry.Point outputPoint = (com.esri.core.geometry.Point)(differenceOp .execute(point1, envelope2, spatialRef, null)); NUnit.Framework.Assert.IsTrue(!outputPoint.isEmpty()); outputPoint = (com.esri.core.geometry.Point)(differenceOp.execute(point2, envelope2 , spatialRef, null)); NUnit.Framework.Assert.IsTrue(outputPoint.isEmpty()); outputPolygon = (com.esri.core.geometry.Polygon)(differenceOp.execute(envelope3, envelope2, spatialRef, null)); NUnit.Framework.Assert.IsTrue(outputPolygon != null && outputPolygon.isEmpty()); outputPolygon = (com.esri.core.geometry.Polygon)(symDifferenceOp.execute(envelope3 , envelope3, spatialRef, null)); NUnit.Framework.Assert.IsTrue(outputPolygon != null && outputPolygon.isEmpty()); outputPoint = (com.esri.core.geometry.Point)(differenceOp.execute(point1, polygon1 , spatialRef, null)); NUnit.Framework.Assert.IsTrue(outputPoint != null); }
public virtual void testBufferPolygon() { com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference .create(4326); com.esri.core.geometry.Polygon inputGeom = new com.esri.core.geometry.Polygon(); com.esri.core.geometry.OperatorBuffer buffer = (com.esri.core.geometry.OperatorBuffer )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Buffer); com.esri.core.geometry.OperatorSimplify simplify = (com.esri.core.geometry.OperatorSimplify )com.esri.core.geometry.OperatorFactoryLocal.getInstance().getOperator(com.esri.core.geometry.Operator.Type .Simplify); inputGeom.startPath(0, 0); inputGeom.lineTo(50, 50); inputGeom.lineTo(50, 0); { com.esri.core.geometry.Geometry result = buffer.execute(inputGeom, sr, 0, null); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); NUnit.Framework.Assert.IsTrue(result == inputGeom); } { com.esri.core.geometry.Geometry result = buffer.execute(inputGeom, sr, 10, null); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); com.esri.core.geometry.Polygon poly = (com.esri.core.geometry.Polygon)(result); com.esri.core.geometry.Envelope2D env2D = new com.esri.core.geometry.Envelope2D(); result.queryEnvelope2D(env2D); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getWidth() - 20 - 50) < 0.1 && System.Math.abs(env2D.getHeight() - 20 - 50) < 0.1); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getCenterX() - 25) < 0.1 && System.Math .abs(env2D.getCenterY() - 25) < 0.1); int pathCount = poly.getPathCount(); NUnit.Framework.Assert.IsTrue(pathCount == 1); int pointCount = poly.getPointCount(); NUnit.Framework.Assert.IsTrue(System.Math.abs(pointCount - 104.0) < 10); NUnit.Framework.Assert.IsTrue(simplify.isSimpleAsFeature(result, sr, null)); } { sr = com.esri.core.geometry.SpatialReference.create(4326); inputGeom = new com.esri.core.geometry.Polygon(); inputGeom.startPath(0, 0); inputGeom.lineTo(50, 50); inputGeom.lineTo(50, 0); com.esri.core.geometry.Geometry result = buffer.execute(inputGeom, sr, -10, null); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); com.esri.core.geometry.Polygon poly = (com.esri.core.geometry.Polygon)(result); com.esri.core.geometry.Envelope2D env2D = new com.esri.core.geometry.Envelope2D(); result.queryEnvelope2D(env2D); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getWidth() - 15.85) < 0.1 && System.Math.abs(env2D.getHeight() - 15.85) < 0.1); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getCenterX() - 32.07) < 0.1 && System.Math.abs(env2D.getCenterY() - 17.93) < 0.1); int pathCount = poly.getPathCount(); NUnit.Framework.Assert.IsTrue(pathCount == 1); int pointCount = poly.getPointCount(); NUnit.Framework.Assert.IsTrue(pointCount == 3); NUnit.Framework.Assert.IsTrue(simplify.isSimpleAsFeature(result, sr, null)); } { sr = com.esri.core.geometry.SpatialReference.create(4326); inputGeom = new com.esri.core.geometry.Polygon(); inputGeom.startPath(0, 0); inputGeom.lineTo(0, 50); inputGeom.lineTo(50, 50); inputGeom.lineTo(50, 0); inputGeom.startPath(10, 10); inputGeom.lineTo(40, 10); inputGeom.lineTo(40, 40); inputGeom.lineTo(10, 40); com.esri.core.geometry.Geometry result = buffer.execute(inputGeom, sr, -2, null); NUnit.Framework.Assert.IsTrue(result.getType().value() == com.esri.core.geometry.Geometry.GeometryType .Polygon); com.esri.core.geometry.Polygon poly = (com.esri.core.geometry.Polygon)(result); com.esri.core.geometry.Envelope2D env2D = new com.esri.core.geometry.Envelope2D(); result.queryEnvelope2D(env2D); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getWidth() + 4 - 50) < 0.1 && System.Math.abs(env2D.getHeight() + 4 - 50) < 0.1); NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getCenterX() - 25) < 0.1 && System.Math .abs(env2D.getCenterY() - 25) < 0.1); int pathCount = poly.getPathCount(); NUnit.Framework.Assert.IsTrue(pathCount == 2); int pointCount = poly.getPointCount(); NUnit.Framework.Assert.IsTrue(System.Math.abs(pointCount - 108) < 10); NUnit.Framework.Assert.IsTrue(simplify.isSimpleAsFeature(result, sr, null)); } }
public static void TestMergeCursor() { com.esri.core.geometry.OperatorConvexHull bounding = (com.esri.core.geometry.OperatorConvexHull)com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.ConvexHull); com.esri.core.geometry.Polygon geom1 = new com.esri.core.geometry.Polygon(); com.esri.core.geometry.Polygon geom2 = new com.esri.core.geometry.Polygon(); com.esri.core.geometry.Point geom3 = new com.esri.core.geometry.Point(); com.esri.core.geometry.Line geom4 = new com.esri.core.geometry.Line(); com.esri.core.geometry.Envelope geom5 = new com.esri.core.geometry.Envelope(); com.esri.core.geometry.MultiPoint geom6 = new com.esri.core.geometry.MultiPoint(); // polygon geom1.StartPath(0, 0); geom1.LineTo(0, 0); geom1.LineTo(5, 11); geom1.LineTo(5, 11); geom1.LineTo(10, 0); geom1.LineTo(10, 0); // polygon geom2.StartPath(0, 5); geom2.LineTo(0, 5); geom2.LineTo(10, 5); geom2.LineTo(10, 5); geom2.LineTo(5, -5); geom2.LineTo(5, -5); // point geom3.SetXY(15, 1.25); // segment geom4.SetEndXY(-5, 1.25); geom4.SetStartXY(0, 0); // envelope geom5.SetCoords(0, 0, 5, 10); // multi_point geom6.Add(10, 5); geom6.Add(10, 10); // create cursor com.esri.core.geometry.Geometry[] geoms = new com.esri.core.geometry.Geometry[6]; geoms[0] = geom1; geoms[1] = geom2; geoms[2] = geom3; geoms[3] = geom4; geoms[4] = geom5; geoms[5] = geom6; com.esri.core.geometry.GeometryCursor cursor = new com.esri.core.geometry.SimpleGeometryCursor(geoms); // create convex hull from the cursor with b_merge set to true com.esri.core.geometry.GeometryCursor convex_hull_curs = bounding.Execute(cursor, true, null); com.esri.core.geometry.Polygon convex_hull = (com.esri.core.geometry.Polygon)(convex_hull_curs.Next()); NUnit.Framework.Assert.IsTrue(convex_hull_curs.Next() == null); NUnit.Framework.Assert.IsTrue(bounding.IsConvex(convex_hull, null)); com.esri.core.geometry.Point2D p1 = convex_hull.GetXY(0); com.esri.core.geometry.Point2D p2 = convex_hull.GetXY(1); com.esri.core.geometry.Point2D p3 = convex_hull.GetXY(2); com.esri.core.geometry.Point2D p4 = convex_hull.GetXY(3); com.esri.core.geometry.Point2D p5 = convex_hull.GetXY(4); com.esri.core.geometry.Point2D p6 = convex_hull.GetXY(5); NUnit.Framework.Assert.IsTrue(p1.x == 5.0 && p1.y == 11.0); NUnit.Framework.Assert.IsTrue(p2.x == 10.0 && p2.y == 10); NUnit.Framework.Assert.IsTrue(p3.x == 15.0 && p3.y == 1.25); NUnit.Framework.Assert.IsTrue(p4.x == 5.0 && p4.y == -5.0); NUnit.Framework.Assert.IsTrue(p5.x == -5.0 && p5.y == 1.25); NUnit.Framework.Assert.IsTrue(p6.x == 0.0 && p6.y == 10.0); // Test GeometryEngine com.esri.core.geometry.Geometry[] merged_hull = com.esri.core.geometry.GeometryEngine.ConvexHull(geoms, true); convex_hull = (com.esri.core.geometry.Polygon)merged_hull[0]; p1 = convex_hull.GetXY(0); p2 = convex_hull.GetXY(1); p3 = convex_hull.GetXY(2); p4 = convex_hull.GetXY(3); p5 = convex_hull.GetXY(4); p6 = convex_hull.GetXY(5); NUnit.Framework.Assert.IsTrue(p1.x == 5.0 && p1.y == 11.0); NUnit.Framework.Assert.IsTrue(p2.x == 10.0 && p2.y == 10); NUnit.Framework.Assert.IsTrue(p3.x == 15.0 && p3.y == 1.25); NUnit.Framework.Assert.IsTrue(p4.x == 5.0 && p4.y == -5.0); NUnit.Framework.Assert.IsTrue(p5.x == -5.0 && p5.y == 1.25); NUnit.Framework.Assert.IsTrue(p6.x == 0.0 && p6.y == 10.0); }