예제 #1
0
        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());
        }
예제 #2
0
 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 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)
			{
			}
		}
예제 #4
0
        public virtual void testEqualsOnMultiPoints()
        {
            com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference
                                                         .create(4326);
            com.esri.core.geometry.MultiPoint baseMp = new com.esri.core.geometry.MultiPoint(
                );
            com.esri.core.geometry.MultiPoint compMp = new com.esri.core.geometry.MultiPoint(
                );
            baseMp.add(new com.esri.core.geometry.Point(-116, 40));
            baseMp.add(new com.esri.core.geometry.Point(-120, 39));
            baseMp.add(new com.esri.core.geometry.Point(-121, 10));
            baseMp.add(new com.esri.core.geometry.Point(-130, 12));
            baseMp.add(new com.esri.core.geometry.Point(-108, 25));
            compMp.add(new com.esri.core.geometry.Point(-116, 40));
            compMp.add(new com.esri.core.geometry.Point(-120, 39));
            compMp.add(new com.esri.core.geometry.Point(-121, 10));
            compMp.add(new com.esri.core.geometry.Point(-130, 12));
            compMp.add(new com.esri.core.geometry.Point(-108, 25));
            bool isEqual;

            try
            {
                isEqual = com.esri.core.geometry.GeometryEngine.equals(baseMp, compMp, sr);
            }
            catch (System.ArgumentException)
            {
                isEqual = false;
            }
            NUnit.Framework.Assert.IsTrue(isEqual);
        }
예제 #5
0
        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());
        }
예제 #6
0
        public static void test2()
        {
            com.esri.core.geometry.MultiPoint multipoint = new com.esri.core.geometry.MultiPoint
                                                               ();
            for (int i = 0; i < 100; i++)
            {
                for (int j = 0; j < 100; j++)
                {
                    multipoint.add(i, j);
                }
            }
            com.esri.core.geometry.Envelope2D extent = new com.esri.core.geometry.Envelope2D(
                );
            multipoint.queryEnvelope2D(extent);
            com.esri.core.geometry.MultiPointImpl multipointImpl = (com.esri.core.geometry.MultiPointImpl
                                                                    )multipoint._getImpl();
            com.esri.core.geometry.QuadTree quadtree = buildQuadTree_(multipointImpl);
            com.esri.core.geometry.QuadTree.QuadTreeIterator qtIter = quadtree.getIterator();
            NUnit.Framework.Assert.IsTrue(qtIter.next() == -1);
            int count = 0;

            qtIter.resetIterator(extent, 0.0);
            while (qtIter.next() != -1)
            {
                count++;
            }
            NUnit.Framework.Assert.IsTrue(count == 10000);
        }
예제 #7
0
        public static void compareGeometryContent(com.esri.core.geometry.MultiPoint geom1
                                                  , com.esri.core.geometry.MultiPoint geom2)
        {
            // Geometry types
            NUnit.Framework.Assert.IsTrue(geom1.getType().value() == geom2.getType().value());
            // Envelopes
            com.esri.core.geometry.Envelope env1 = new com.esri.core.geometry.Envelope();
            geom1.queryEnvelope(env1);
            com.esri.core.geometry.Envelope env2 = new com.esri.core.geometry.Envelope();
            geom2.queryEnvelope(env2);
            NUnit.Framework.Assert.IsTrue(env1.getXMin() == env2.getXMin() && env1.getXMax()
                                          == env2.getXMax() && env1.getYMin() == env2.getYMin() && env1.getYMax() == env2.
                                          getYMax());
            // Point count
            int pointCount1 = geom1.getPointCount();
            int pointCount2 = geom2.getPointCount();

            NUnit.Framework.Assert.IsTrue(pointCount1 == pointCount2);
            com.esri.core.geometry.Point point1;
            com.esri.core.geometry.Point point2;
            for (int i = 0; i < pointCount1; i++)
            {
                point1 = geom1.getPoint(i);
                point2 = geom2.getPoint(i);
                double x1 = point1.getX();
                double x2 = point2.getX();
                NUnit.Framework.Assert.IsTrue(x1 == x2);
                double y1 = point1.getY();
                double y2 = point2.getY();
                NUnit.Framework.Assert.IsTrue(y1 == y2);
            }
        }
예제 #8
0
 private static com.esri.core.geometry.MultiPoint makeMultiPoint()
 {
     com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
         );
     mpoint.add(0, 30);
     mpoint.add(15, 15);
     mpoint.add(0, 15);
     return(mpoint);
 }
		public virtual void testMultiPointGeometryEngine()
		{
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.add(10.0, 20.0);
			mp.add(20.0, 30.0);
			string result = com.esri.core.geometry.GeometryEngine.geometryToGeoJson(mp);
			NUnit.Framework.Assert.AreEqual("{\"type\":\"MultiPoint\",\"coordinates\":[[10.0,20.0],[20.0,30.0]]}"
				, result);
		}
		public virtual void testEmptyMultiPoint()
		{
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.OperatorExportToGeoJson exporter = (com.esri.core.geometry.OperatorExportToGeoJson
				)factory.getOperator(com.esri.core.geometry.Operator.Type.ExportToGeoJson);
			string result = exporter.execute(mp);
			NUnit.Framework.Assert.AreEqual("{\"type\":\"MultiPoint\",\"coordinates\":null}", 
				result);
		}
		public virtual void testOGCMultiPoint()
		{
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.add(10.0, 20.0);
			mp.add(20.0, 30.0);
			com.esri.core.geometry.ogc.OGCMultiPoint ogcMultiPoint = new com.esri.core.geometry.ogc.OGCMultiPoint
				(mp, null);
			string result = ogcMultiPoint.asGeoJson();
			NUnit.Framework.Assert.AreEqual("{\"type\":\"MultiPoint\",\"coordinates\":[[10.0,20.0],[20.0,30.0]]}"
				, result);
		}
예제 #12
0
 public static com.esri.core.geometry.MultiPoint makeMultiPoint3()
 {
     com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
         );
     com.esri.core.geometry.Point2D pt1 = new com.esri.core.geometry.Point2D();
     pt1.x = 1.0;
     pt1.y = 1.0;
     com.esri.core.geometry.Point2D pt2 = new com.esri.core.geometry.Point2D();
     pt2.x = 5.0;
     pt2.y = 5.0;
     mpoint.add(pt1.x, pt1.y);
     mpoint.add(pt2.x, pt2.y);
     return(mpoint);
 }
예제 #13
0
 public static com.esri.core.geometry.MultiPoint makeMultiPoint2()
 {
     com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
         );
     com.esri.core.geometry.Point2D pt1 = new com.esri.core.geometry.Point2D();
     pt1.x = 1.0;
     pt1.y = 1.0;
     com.esri.core.geometry.Point2D pt2 = new com.esri.core.geometry.Point2D();
     pt2.x = 1.0;
     pt2.y = 1.0;
     com.esri.core.geometry.Point2D pt3 = new com.esri.core.geometry.Point2D();
     pt3.x = 15.0;
     pt3.y = 15.0;
     com.esri.core.geometry.Point2D pt4 = new com.esri.core.geometry.Point2D();
     pt4.x = 15.0;
     pt4.y = 15.0;
     com.esri.core.geometry.Point2D pt5 = new com.esri.core.geometry.Point2D();
     pt5.x = 1.0;
     pt5.y = 1.0;
     com.esri.core.geometry.Point2D pt6 = new com.esri.core.geometry.Point2D();
     pt6.x = 1.0;
     pt6.y = 1.0;
     com.esri.core.geometry.Point2D pt7 = new com.esri.core.geometry.Point2D();
     pt7.x = 15.0;
     pt7.y = 15.0;
     com.esri.core.geometry.Point2D pt8 = new com.esri.core.geometry.Point2D();
     pt8.x = 15.0;
     pt8.y = 15.0;
     com.esri.core.geometry.Point2D pt9 = new com.esri.core.geometry.Point2D();
     pt9.x = 15.0;
     pt9.y = 15.0;
     com.esri.core.geometry.Point2D pt10 = new com.esri.core.geometry.Point2D();
     pt10.x = 1.0;
     pt10.y = 1.0;
     com.esri.core.geometry.Point2D pt11 = new com.esri.core.geometry.Point2D();
     pt11.x = 15.0;
     pt11.y = 15.0;
     mpoint.add(pt1.x, pt1.y);
     mpoint.add(pt2.x, pt2.y);
     mpoint.add(pt3.x, pt3.y);
     mpoint.add(pt4.x, pt4.y);
     mpoint.add(pt5.x, pt5.y);
     mpoint.add(pt6.x, pt6.y);
     mpoint.add(pt7.x, pt7.y);
     mpoint.add(pt8.x, pt8.y);
     mpoint.add(pt9.x, pt9.y);
     mpoint.add(pt10.x, pt10.y);
     mpoint.add(pt11.x, pt11.y);
     return(mpoint);
 }
예제 #14
0
 public virtual void testSerializeMultiPoint()
 {
     try
     {
         java.io.ByteArrayOutputStream     streamOut = new java.io.ByteArrayOutputStream();
         java.io.ObjectOutputStream        oo        = new java.io.ObjectOutputStream(streamOut);
         com.esri.core.geometry.MultiPoint pt        = new com.esri.core.geometry.MultiPoint();
         pt.add(10, 30);
         pt.add(120, 40);
         oo.writeObject(pt);
         java.io.ByteArrayInputStream streamIn = new java.io.ByteArrayInputStream(streamOut
                                                                                  .toByteArray());
         java.io.ObjectInputStream         ii    = new java.io.ObjectInputStream(streamIn);
         com.esri.core.geometry.MultiPoint ptRes = (com.esri.core.geometry.MultiPoint)ii.readObject
                                                       ();
         NUnit.Framework.Assert.IsTrue(ptRes.Equals(pt));
     }
     catch (System.Exception)
     {
         fail("MultiPoint serialization failure");
     }
     // try
     // {
     // FileOutputStream streamOut = new FileOutputStream(m_thisDirectory +
     // "savedMultiPoint.txt");
     // ObjectOutputStream oo = new ObjectOutputStream(streamOut);
     // MultiPoint pt = new MultiPoint();
     // pt.add(10, 30);
     // pt.add(120, 40);
     // oo.writeObject(pt);
     // }
     // catch(Exception ex)
     // {
     // fail("MultiPoint serialization failure");
     // }
     try
     {
         java.io.InputStream s = Sharpen.Runtime.getClassForType(typeof(com.esri.core.geometry.TestSerialization
                                                                        )).getResourceAsStream("savedMultiPoint.txt");
         java.io.ObjectInputStream         ii    = new java.io.ObjectInputStream(s);
         com.esri.core.geometry.MultiPoint ptRes = (com.esri.core.geometry.MultiPoint)ii.readObject
                                                       ();
         NUnit.Framework.Assert.IsTrue(ptRes.getPoint(1).getY() == 40);
     }
     catch (System.Exception)
     {
         fail("MultiPoint serialization failure");
     }
 }
예제 #15
0
        public virtual void testBufferMultiPoint()
        {
            com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference
                                                         .create(4326);
            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.MultiPoint inputGeom = new com.esri.core.geometry.MultiPoint
                                                              ();
            inputGeom.add(12, 120);
            inputGeom.add(20, 120);
            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);
            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 - 8) < 0.001 &&
                                          System.Math.abs(env2D.getHeight() - 80) < 0.001);
            NUnit.Framework.Assert.IsTrue(System.Math.abs(env2D.getCenterX() - 16) < 0.001 &&
                                          System.Math.abs(env2D.getCenterY() - 120) < 0.001);
            int pathCount = poly.getPathCount();

            NUnit.Framework.Assert.IsTrue(pathCount == 1);
            int pointCount = poly.getPointCount();

            NUnit.Framework.Assert.IsTrue(System.Math.abs(pointCount - 108.0) < 10);
            NUnit.Framework.Assert.IsTrue(simplify.isSimpleAsFeature(result, sr, null));
            {
                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());
            }
        }
예제 #16
0
        public static void testDistanceBetweenVariousGeometries()
        {
            com.esri.core.geometry.Polygon    polygon    = makePolygon();
            com.esri.core.geometry.Polyline   polyline   = makePolyline();
            com.esri.core.geometry.MultiPoint multipoint = makeMultiPoint();
            com.esri.core.geometry.Point      point      = makePoint();
            // SpatialReference spatialRef =
            // SpatialReference.create(3857);//PCS_WGS_1984_WEB_MERCATOR_AUXSPHERE
            double distance;

            distance = com.esri.core.geometry.GeometryEngine.distance(polygon, polyline, null
                                                                      );
            NUnit.Framework.Assert.IsTrue(System.Math.abs(distance - 5.0) < 0.00001);
            distance = com.esri.core.geometry.GeometryEngine.distance(polygon, multipoint, null
                                                                      );
            NUnit.Framework.Assert.IsTrue(System.Math.abs(distance - 5.0) < 0.00001);
            distance = com.esri.core.geometry.GeometryEngine.distance(polygon, point, null);
            NUnit.Framework.Assert.IsTrue(System.Math.abs(distance - 5.0) < 0.00001);
        }
예제 #17
0
 public static void testCopy()
 {
     com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
         );
     com.esri.core.geometry.Point pt0 = new com.esri.core.geometry.Point(0.0, 0.0, -1.0
                                                                         );
     com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0, 1.0
                                                                         );
     com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 1.0, 1.0
                                                                         );
     mpoint.add(pt0);
     mpoint.add(pt1);
     mpoint.add(pt2);
     mpoint.removePoint(1);
     com.esri.core.geometry.MultiPoint mpCopy = (com.esri.core.geometry.MultiPoint)mpoint
                                                .copy();
     NUnit.Framework.Assert.IsTrue(mpCopy.Equals(mpoint));
     com.esri.core.geometry.Point pt;
     pt = mpCopy.getPoint(0);
     NUnit.Framework.Assert.IsTrue(pt.getX() == pt0.getX() && pt.getY() == pt0.getY());
     pt = mpCopy.getPoint(1);
     NUnit.Framework.Assert.IsTrue(pt.getX() == pt2.getX() && pt.getY() == pt2.getY());
     NUnit.Framework.Assert.IsTrue(mpCopy.getPointCount() == 2);
 }
		public static void Test2()
		{
			com.esri.core.geometry.MultiPoint multipoint = new com.esri.core.geometry.MultiPoint();
			for (int i = 0; i < 100; i++)
			{
				for (int j = 0; j < 100; j++)
				{
					multipoint.Add(i, j);
				}
			}
			com.esri.core.geometry.Envelope2D extent = new com.esri.core.geometry.Envelope2D();
			multipoint.QueryEnvelope2D(extent);
			com.esri.core.geometry.MultiPointImpl multipointImpl = (com.esri.core.geometry.MultiPointImpl)multipoint._getImpl();
			com.esri.core.geometry.QuadTree quadtree = BuildQuadTree_(multipointImpl);
			com.esri.core.geometry.QuadTree.QuadTreeIterator qtIter = quadtree.GetIterator();
			NUnit.Framework.Assert.IsTrue(qtIter.Next() == -1);
			int count = 0;
			qtIter.ResetIterator(extent, 0.0);
			while (qtIter.Next() != -1)
			{
				count++;
			}
			NUnit.Framework.Assert.IsTrue(count == 10000);
		}
		public virtual void TestIsSimpleMultiPointCoincident()
		{
			// Two point test: coincident
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(100, 100);
			mp.Add(100, 100);
			bool result = simplifyOp.IsSimpleAsFeature(mp, sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(!result);
			com.esri.core.geometry.MultiPoint mpS;
			result = simplifyOp.IsSimpleAsFeature(mpS = (com.esri.core.geometry.MultiPoint)simplifyOp.Execute(mp, sr4326, false, null), sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			NUnit.Framework.Assert.IsTrue(mpS.GetPointCount() == 1);
		}
예제 #20
0
 public static void testPointTypes()
 {
     com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal
                                                          .getInstance();
     com.esri.core.geometry.OperatorDifference difference = (com.esri.core.geometry.OperatorDifference
                                                             )engine.getOperator(com.esri.core.geometry.Operator.Type.Difference);
     com.esri.core.geometry.OperatorSymmetricDifference sym_difference = (com.esri.core.geometry.OperatorSymmetricDifference
                                                                          )engine.getOperator(com.esri.core.geometry.Operator.Type.SymmetricDifference);
     {
         // point/point
         com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
         point_1.setXY(0, 0);
         point_2.setXY(0.000000009, 0.000000009);
         com.esri.core.geometry.Point differenced = (com.esri.core.geometry.Point)(difference
                                                                                   .execute(point_1, point_2, com.esri.core.geometry.SpatialReference.create(4326),
                                                                                            null));
         NUnit.Framework.Assert.IsTrue(differenced.isEmpty());
         com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint
                                                              )(sym_difference.execute(point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                       .create(4326), null));
         NUnit.Framework.Assert.IsTrue(sym_differenced.isEmpty());
     }
     {
         // point/point
         com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
         point_1.setXY(0, 0);
         point_2.setXY(0.000000009, 0.0);
         com.esri.core.geometry.Point differenced = (com.esri.core.geometry.Point)(difference
                                                                                   .execute(point_1, point_2, com.esri.core.geometry.SpatialReference.create(4326),
                                                                                            null));
         NUnit.Framework.Assert.IsTrue(differenced.isEmpty());
         com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint
                                                              )(sym_difference.execute(point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                       .create(4326), null));
         NUnit.Framework.Assert.IsTrue(sym_differenced.isEmpty());
     }
     {
         // point/point
         com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
         point_1.setXY(0, 0);
         point_2.setXY(0.00000002, 0.00000002);
         com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_1, point_2, com.esri.core.geometry.SpatialReference.create(4326),
                                                                                              null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         com.esri.core.geometry.Point differenced_2 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_2, point_1, com.esri.core.geometry.SpatialReference.create(4326),
                                                                                              null));
         NUnit.Framework.Assert.IsTrue(!differenced_2.isEmpty());
         com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint
                                                              )(sym_difference.execute(point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                       .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!sym_differenced.isEmpty());
         NUnit.Framework.Assert.IsTrue(sym_differenced.getXY(0).x == 0 && sym_differenced.
                                       getXY(0).y == 0);
         NUnit.Framework.Assert.IsTrue(sym_differenced.getXY(1).x == 0.00000002 && sym_differenced
                                       .getXY(1).y == 0.00000002);
     }
     {
         // multi_point/point
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
         multi_point_1.add(0, 0);
         multi_point_1.add(1, 1);
         point_2.setXY(0.000000009, 0.000000009);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1.getPointCount() == 1);
         NUnit.Framework.Assert.IsTrue(differenced_1.getXY(0).x == 1 && differenced_1.getXY
                                           (0).y == 1);
         com.esri.core.geometry.Point differenced_2 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_2, multi_point_1, com.esri.core.geometry.SpatialReference.create(
                                                                                                  4326), null));
         NUnit.Framework.Assert.IsTrue(differenced_2.isEmpty());
     }
     {
         // multi_point/point
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
         multi_point_1.add(0, 0);
         multi_point_1.add(1, 1);
         point_2.setXY(0.000000009, 0.0);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1.getXY(0).x == 1.0 && differenced_1.getXY
                                           (0).y == 1.0);
         com.esri.core.geometry.Point differenced_2 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_2, multi_point_1, com.esri.core.geometry.SpatialReference.create(
                                                                                                  4326), null));
         NUnit.Framework.Assert.IsTrue(differenced_2.isEmpty());
         com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint
                                                              )(sym_difference.execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                       .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!sym_differenced.isEmpty());
         NUnit.Framework.Assert.IsTrue(sym_differenced.getPointCount() == 1);
         NUnit.Framework.Assert.IsTrue(sym_differenced.getXY(0).x == 1 && sym_differenced.
                                       getXY(0).y == 1);
     }
     {
         // multi_point/point
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
         multi_point_1.add(0, 0);
         multi_point_1.add(0, 0);
         point_2.setXY(0.000000009, 0.0);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(differenced_1.isEmpty());
         com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint
                                                              )(sym_difference.execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference
                                                                                       .create(4326), null));
         NUnit.Framework.Assert.IsTrue(sym_differenced.isEmpty());
     }
     {
         // multi_point/polygon
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
         multi_point_1.add(0, 0);
         multi_point_1.add(0, 0);
         multi_point_1.add(2, 2);
         polygon_2.startPath(-1, -1);
         polygon_2.lineTo(-1, 1);
         polygon_2.lineTo(1, 1);
         polygon_2.lineTo(1, -1);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, polygon_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1.getPointCount() == 1);
         NUnit.Framework.Assert.IsTrue(differenced_1.getXY(0).x == 2 && differenced_1.getXY
                                           (0).y == 2);
     }
     {
         // multi_point/polygon
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
         multi_point_1.add(0, 0);
         multi_point_1.add(0, 0);
         multi_point_1.add(1, 1);
         polygon_2.startPath(-1, -1);
         polygon_2.lineTo(-1, 1);
         polygon_2.lineTo(1, 1);
         polygon_2.lineTo(1, -1);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, polygon_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(differenced_1.isEmpty());
     }
     {
         // multi_point/envelope
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Envelope envelope_2 = new com.esri.core.geometry.Envelope(
             );
         multi_point_1.add(-2, 0);
         multi_point_1.add(0, 2);
         multi_point_1.add(2, 0);
         multi_point_1.add(0, -2);
         envelope_2.setCoords(-1, -1, 1, 1);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, envelope_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty() && differenced_1 == multi_point_1
                                       );
     }
     {
         // multi_point/polygon
         com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint
                                                               ();
         com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
         multi_point_1.add(2, 2);
         multi_point_1.add(2, 2);
         multi_point_1.add(-2, -2);
         polygon_2.startPath(-1, -1);
         polygon_2.lineTo(-1, 1);
         polygon_2.lineTo(1, 1);
         polygon_2.lineTo(1, -1);
         com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint
                                                            )(difference.execute(multi_point_1, polygon_2, com.esri.core.geometry.SpatialReference
                                                                                 .create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty() && differenced_1 == multi_point_1
                                       );
     }
     {
         // point/polygon
         com.esri.core.geometry.Point   point_1   = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
         point_1.setXY(0, 0);
         polygon_2.startPath(-1, -1);
         polygon_2.lineTo(-1, 1);
         polygon_2.lineTo(1, 1);
         polygon_2.lineTo(1, -1);
         com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_1, polygon_2, com.esri.core.geometry.SpatialReference.create(4326
                                                                                                                                                                 ), null));
         NUnit.Framework.Assert.IsTrue(differenced_1.isEmpty());
         polygon_2.setEmpty();
         polygon_2.startPath(1, 1);
         polygon_2.lineTo(1, 2);
         polygon_2.lineTo(2, 2);
         polygon_2.lineTo(2, 1);
         differenced_1 = (com.esri.core.geometry.Point)(difference.execute(point_1, polygon_2
                                                                           , com.esri.core.geometry.SpatialReference.create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
     }
     {
         // point/polygon
         com.esri.core.geometry.Point   point_1   = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
         point_1.setXY(0, 0);
         polygon_2.startPath(1, 0);
         polygon_2.lineTo(0, 1);
         polygon_2.lineTo(1, 1);
         com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_1, polygon_2, com.esri.core.geometry.SpatialReference.create(4326
                                                                                                                                                                 ), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
         point_1.setEmpty();
         point_1.setXY(0.5, 0.5);
         polygon_2.setEmpty();
         polygon_2.startPath(1, 0);
         polygon_2.lineTo(0, 1);
         polygon_2.lineTo(1, 1);
         differenced_1 = (com.esri.core.geometry.Point)(difference.execute(point_1, polygon_2
                                                                           , com.esri.core.geometry.SpatialReference.create(4326), null));
         NUnit.Framework.Assert.IsTrue(differenced_1.isEmpty());
     }
     {
         // point/envelope
         com.esri.core.geometry.Point    point_1    = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Envelope envelope_2 = new com.esri.core.geometry.Envelope(
             );
         point_1.setXY(0, 0);
         envelope_2.setCoords(-1, -1, 1, 1);
         com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_1, envelope_2, com.esri.core.geometry.SpatialReference.create(4326
                                                                                                                                                                  ), null));
         NUnit.Framework.Assert.IsTrue(differenced_1.isEmpty());
         envelope_2.setEmpty();
         envelope_2.setCoords(1, 1, 2, 2);
         differenced_1 = (com.esri.core.geometry.Point)(difference.execute(point_1, envelope_2
                                                                           , com.esri.core.geometry.SpatialReference.create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
     }
     {
         // point/polyline
         com.esri.core.geometry.Point    point_1    = new com.esri.core.geometry.Point();
         com.esri.core.geometry.Polyline polyline_2 = new com.esri.core.geometry.Polyline(
             );
         point_1.setXY(0, 0);
         polyline_2.startPath(-1, 0);
         polyline_2.lineTo(1, 0);
         com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference
                                                                                     .execute(point_1, polyline_2, com.esri.core.geometry.SpatialReference.create(4326
                                                                                                                                                                  ), null));
         NUnit.Framework.Assert.IsTrue(differenced_1.isEmpty());
         polyline_2.setEmpty();
         polyline_2.startPath(1, 0);
         polyline_2.lineTo(2, 0);
         differenced_1 = (com.esri.core.geometry.Point)(difference.execute(point_1, polyline_2
                                                                           , com.esri.core.geometry.SpatialReference.create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
         polyline_2.setEmpty();
         polyline_2.startPath(-1, -1);
         polyline_2.lineTo(-1, 1);
         polyline_2.lineTo(1, 1);
         polyline_2.lineTo(1, -1);
         differenced_1 = (com.esri.core.geometry.Point)(difference.execute(point_1, polyline_2
                                                                           , com.esri.core.geometry.SpatialReference.create(4326), null));
         NUnit.Framework.Assert.IsTrue(!differenced_1.isEmpty());
         NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
     }
 }
		public static com.esri.core.geometry.MultiPoint MakeMultiPoint()
		{
			com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point();
			pt1.SetXY(0, 0);
			pt1.SetZ(-1);
			com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point();
			pt2.SetXY(0, 0);
			pt2.SetZ(1);
			com.esri.core.geometry.Point pt3 = new com.esri.core.geometry.Point();
			pt3.SetXY(0, 1);
			pt3.SetZ(1);
			mpoint.Add(pt1);
			mpoint.Add(pt2);
			mpoint.Add(pt3);
			mpoint.SetAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID, 0, 0, 7);
			mpoint.SetAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID, 1, 0, 11);
			mpoint.SetAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID, 2, 0, 13);
			return mpoint;
		}
		public virtual void TestisSimpleOGC()
		{
			com.esri.core.geometry.Polyline poly = new com.esri.core.geometry.Polyline();
			poly.StartPath(0, 0);
			poly.LineTo(10, 0);
			bool result = simplifyOpOGC.IsSimpleOGC(poly, sr4326, true, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			poly = new com.esri.core.geometry.Polyline();
			poly.StartPath(0, 0);
			poly.LineTo(10, 10);
			poly.LineTo(0, 10);
			poly.LineTo(10, 0);
			com.esri.core.geometry.NonSimpleResult nsr = new com.esri.core.geometry.NonSimpleResult();
			result = simplifyOpOGC.IsSimpleOGC(poly, sr4326, true, nsr, null);
			NUnit.Framework.Assert.IsTrue(!result);
			NUnit.Framework.Assert.IsTrue(nsr.m_reason == com.esri.core.geometry.NonSimpleResult.Reason.Cracking);
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(0, 0);
			mp.Add(10, 0);
			result = simplifyOpOGC.IsSimpleOGC(mp, sr4326, true, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(10, 0);
			mp.Add(10, 0);
			nsr = new com.esri.core.geometry.NonSimpleResult();
			result = simplifyOpOGC.IsSimpleOGC(mp, sr4326, true, nsr, null);
			NUnit.Framework.Assert.IsTrue(!result);
			NUnit.Framework.Assert.IsTrue(nsr.m_reason == com.esri.core.geometry.NonSimpleResult.Reason.Clustering);
		}
		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 static void TestCopy()
		{
			com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point pt0 = new com.esri.core.geometry.Point(0.0, 0.0, -1.0);
			com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0, 1.0);
			com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 1.0, 1.0);
			mpoint.Add(pt0);
			mpoint.Add(pt1);
			mpoint.Add(pt2);
			mpoint.RemovePoint(1);
			com.esri.core.geometry.MultiPoint mpCopy = (com.esri.core.geometry.MultiPoint)mpoint.Copy();
			NUnit.Framework.Assert.IsTrue(mpCopy.Equals(mpoint));
			com.esri.core.geometry.Point pt;
			pt = mpCopy.GetPoint(0);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == pt0.GetX() && pt.GetY() == pt0.GetY());
			pt = mpCopy.GetPoint(1);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == pt2.GetX() && pt.GetY() == pt2.GetY());
			NUnit.Framework.Assert.IsTrue(mpCopy.GetPointCount() == 2);
		}
		public static com.esri.core.geometry.MultiPoint MakeMultiPoint2()
		{
			com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point2D pt1 = new com.esri.core.geometry.Point2D();
			pt1.x = 1.0;
			pt1.y = 1.0;
			com.esri.core.geometry.Point2D pt2 = new com.esri.core.geometry.Point2D();
			pt2.x = 1.0;
			pt2.y = 1.0;
			com.esri.core.geometry.Point2D pt3 = new com.esri.core.geometry.Point2D();
			pt3.x = 15.0;
			pt3.y = 15.0;
			com.esri.core.geometry.Point2D pt4 = new com.esri.core.geometry.Point2D();
			pt4.x = 15.0;
			pt4.y = 15.0;
			com.esri.core.geometry.Point2D pt5 = new com.esri.core.geometry.Point2D();
			pt5.x = 1.0;
			pt5.y = 1.0;
			com.esri.core.geometry.Point2D pt6 = new com.esri.core.geometry.Point2D();
			pt6.x = 1.0;
			pt6.y = 1.0;
			com.esri.core.geometry.Point2D pt7 = new com.esri.core.geometry.Point2D();
			pt7.x = 15.0;
			pt7.y = 15.0;
			com.esri.core.geometry.Point2D pt8 = new com.esri.core.geometry.Point2D();
			pt8.x = 15.0;
			pt8.y = 15.0;
			com.esri.core.geometry.Point2D pt9 = new com.esri.core.geometry.Point2D();
			pt9.x = 15.0;
			pt9.y = 15.0;
			com.esri.core.geometry.Point2D pt10 = new com.esri.core.geometry.Point2D();
			pt10.x = 1.0;
			pt10.y = 1.0;
			com.esri.core.geometry.Point2D pt11 = new com.esri.core.geometry.Point2D();
			pt11.x = 15.0;
			pt11.y = 15.0;
			mpoint.Add(pt1.x, pt1.y);
			mpoint.Add(pt2.x, pt2.y);
			mpoint.Add(pt3.x, pt3.y);
			mpoint.Add(pt4.x, pt4.y);
			mpoint.Add(pt5.x, pt5.y);
			mpoint.Add(pt6.x, pt6.y);
			mpoint.Add(pt7.x, pt7.y);
			mpoint.Add(pt8.x, pt8.y);
			mpoint.Add(pt9.x, pt9.y);
			mpoint.Add(pt10.x, pt10.y);
			mpoint.Add(pt11.x, pt11.y);
			return mpoint;
		}
		public virtual void TestBufferMultiPoint()
		{
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
			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.MultiPoint inputGeom = new com.esri.core.geometry.MultiPoint();
			inputGeom.Add(12, 120);
			inputGeom.Add(20, 120);
			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);
			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 - 8) < 0.001 && System.Math.Abs(env2D.GetHeight() - 80) < 0.001);
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(env2D.GetCenterX() - 16) < 0.001 && System.Math.Abs(env2D.GetCenterY() - 120) < 0.001);
			int pathCount = poly.GetPathCount();
			NUnit.Framework.Assert.IsTrue(pathCount == 1);
			int pointCount = poly.GetPointCount();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(pointCount - 108.0) < 10);
			NUnit.Framework.Assert.IsTrue(simplify.IsSimpleAsFeature(result, sr, null));
			{
				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());
			}
		}
		public virtual void TestIsSimpleMultiPointCloserThanTolerance2()
		{
			// 5 point test: closer than tolerance
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(100, 100);
			mp.Add(100, 101);
			mp.Add(100, 100 + sr4326.GetTolerance() / 2);
			mp.Add(11, 1);
			mp.Add(11, 14);
			com.esri.core.geometry.MultiPoint mpS;
			bool result = simplifyOp.IsSimpleAsFeature(mp, sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			result = simplifyOp.IsSimpleAsFeature(mpS = (com.esri.core.geometry.MultiPoint)simplifyOp.Execute(mp, sr4326, false, null), sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			NUnit.Framework.Assert.IsTrue(mpS.GetPointCount() == 5);
		}
예제 #28
0
        /// <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 virtual void TestIsSimpleMultiPoint_coincident2()
		{
			// 5 point test: coincident
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(100, 100);
			mp.Add(100, 101);
			mp.Add(100, 100);
			mp.Add(11, 1);
			mp.Add(11, 14);
			bool result = simplifyOp.IsSimpleAsFeature(mp, sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(!result);
			com.esri.core.geometry.MultiPoint mpS;
			result = simplifyOp.IsSimpleAsFeature(mpS = (com.esri.core.geometry.MultiPoint)simplifyOp.Execute(mp, sr4326, false, null), sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			NUnit.Framework.Assert.IsTrue(mpS.GetPointCount() == 4);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(0).GetX(), 100, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(0).GetY(), 100, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(1).GetX(), 100, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(1).GetY(), 101, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(2).GetX(), 11, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(2).GetY(), 1, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(3).GetX(), 11, 1e-7);
			NUnit.Framework.Assert.AreEqual(mpS.GetPoint(3).GetY(), 14, 1e-7);
		}
		public virtual void TestIsSimpleMultiPointFarApart2()
		{
			// 5 point test: far apart
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(100, 100);
			mp.Add(100, 101);
			mp.Add(101, 101);
			mp.Add(11, 1);
			mp.Add(11, 14);
			com.esri.core.geometry.MultiPoint mpS;
			bool result = simplifyOp.IsSimpleAsFeature(mp, sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			result = simplifyOp.IsSimpleAsFeature(mpS = (com.esri.core.geometry.MultiPoint)simplifyOp.Execute(mp, sr4326, false, null), sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			NUnit.Framework.Assert.IsTrue(mpS.GetPointCount() == 5);
		}
		public virtual void TestMultiPointSR4326_CR184439()
		{
			com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal.GetInstance();
			com.esri.core.geometry.OperatorSimplify simpOp = (com.esri.core.geometry.OperatorSimplify)engine.GetOperator(com.esri.core.geometry.Operator.Type.Simplify);
			com.esri.core.geometry.NonSimpleResult nonSimpResult = new com.esri.core.geometry.NonSimpleResult();
			nonSimpResult.m_reason = com.esri.core.geometry.NonSimpleResult.Reason.NotDetermined;
			com.esri.core.geometry.MultiPoint multiPoint = new com.esri.core.geometry.MultiPoint();
			multiPoint.Add(0, 0);
			multiPoint.Add(0, 1);
			multiPoint.Add(0, 0);
			bool multiPointIsSimple = simpOp.IsSimpleAsFeature(multiPoint, com.esri.core.geometry.SpatialReference.Create(4326), true, nonSimpResult, null);
			NUnit.Framework.Assert.IsFalse(multiPointIsSimple);
			NUnit.Framework.Assert.IsTrue(nonSimpResult.m_reason == com.esri.core.geometry.NonSimpleResult.Reason.Clustering);
			NUnit.Framework.Assert.IsTrue(nonSimpResult.m_vertexIndex1 == 0);
			NUnit.Framework.Assert.IsTrue(nonSimpResult.m_vertexIndex2 == 2);
		}
		public virtual void TestMultiPointPointDisjoint()
		{
			com.esri.core.geometry.OperatorDisjoint disjoint = (com.esri.core.geometry.OperatorDisjoint)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Disjoint));
			com.esri.core.geometry.OperatorContains contains = (com.esri.core.geometry.OperatorContains)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Contains));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(102100);
			double tolerance = sr.GetTolerance(com.esri.core.geometry.VertexDescription.Semantics.POSITION);
			com.esri.core.geometry.MultiPoint multipoint1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point point2 = new com.esri.core.geometry.Point();
			multipoint1.Add(2, 2);
			multipoint1.Add(2, 5);
			multipoint1.Add(4, 1);
			multipoint1.Add(4, 4);
			multipoint1.Add(4, 7);
			multipoint1.Add(6, 2);
			multipoint1.Add(6, 6);
			multipoint1.Add(4, 1);
			multipoint1.Add(6, 6);
			point2.SetXY(2, 6);
			bool res = disjoint.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = disjoint.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = contains.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = contains.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			multipoint1.Add(2, 6);
			res = disjoint.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = disjoint.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = contains.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = contains.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
		}
예제 #33
0
        public static void testCreation()
        {
            {
                // simple create
                com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
                    );
                NUnit.Framework.Assert.IsTrue(Sharpen.Runtime.getClassForObject(mpoint) == Sharpen.Runtime.getClassForType
                                                  (typeof(com.esri.core.geometry.MultiPoint)));
                // assertFalse(mpoint.getClass() == Polyline.class);
                NUnit.Framework.Assert.IsTrue(mpoint != null);
                NUnit.Framework.Assert.IsTrue(mpoint.getType() == com.esri.core.geometry.Geometry.Type
                                              .MultiPoint);
                NUnit.Framework.Assert.IsTrue(mpoint.isEmpty());
                NUnit.Framework.Assert.IsTrue(mpoint.getPointCount() == 0);
                mpoint = null;
                NUnit.Framework.Assert.IsFalse(mpoint != null);
            }
            {
                // play with default attributes
                com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
                    );
                simpleTest(mpoint);
            }
            {
                // simple create 2D
                com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
                    );
                NUnit.Framework.Assert.IsTrue(mpoint != null);
                com.esri.core.geometry.MultiPoint mpoint1 = new com.esri.core.geometry.MultiPoint
                                                                ();
                NUnit.Framework.Assert.IsTrue(mpoint1 != null);
                mpoint.setEmpty();
                com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(0, 0);
                mpoint.add(pt);
                com.esri.core.geometry.Point pt3 = mpoint.getPoint(0);
                NUnit.Framework.Assert.IsTrue(pt3.getX() == 0 && pt3.getY() == 0);
                // assertFalse(mpoint->HasAttribute(VertexDescription::Semantics::Z));
                // pt3.setZ(115.0);
                mpoint.setPoint(0, pt3);
                pt3 = mpoint.getPoint(0);
                NUnit.Framework.Assert.IsTrue(pt3.getX() == 0 && pt3.getY() == 0);
            }
            {
                /* && pt3.getZ() == 115 */
                // assertTrue(mpoint->HasAttribute(VertexDescription::Semantics::Z));
                // CompareGeometryContent(mpoint, &pt, 1);
                // move 3d
                com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
                    );
                NUnit.Framework.Assert.IsTrue(mpoint != null);
                com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(0, 0);
                mpoint.add(pt);
                com.esri.core.geometry.Point pt3 = mpoint.getPoint(0);
                NUnit.Framework.Assert.IsTrue(pt3.getX() == 0 && pt3.getY() == 0);
            }
            {
                /* && pt3.getZ() == 0 */
                // test QueryInterval
                com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
                    );
                com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0);
                // pt1.setZ(-1.0);
                com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 0.0);
                // pt2.setZ(1.0);
                mpoint.add(pt1);
                mpoint.add(pt2);
                // Envelope1D e =
                // mpoint->QueryInterval(enum_value2(VertexDescription, Semantics,
                // Z), 0);
                com.esri.core.geometry.Envelope e = new com.esri.core.geometry.Envelope();
                mpoint.queryEnvelope(e);
            }
            {
                // assertTrue(e.get == -1.0 && e.vmax == 1.0);
                com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
            }
            {
                // int sz = sizeof(openString) / sizeof(openString[0]);
                // for (int i = 0; i < sz; i++)
                // geom.add(openString[i]);
                // CompareGeometryContent(geom, openString, sz);
                com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
            }
            {
                // int sz = sizeof(openString) / sizeof(openString[0]);
                // Point point = GCNEW Point;
                // for (int i = 0; i < sz; i++)
                // {
                // point.setXY(openString[i]);
                // geom.add(point);
                // }
                // CompareGeometryContent(geom, openString, sz);
                // Test AddPoints
                com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
            }
            {
                // int sz = sizeof(openString) / sizeof(openString[0]);
                // geom.addPoints(openString, sz, 0, -1);
                // CompareGeometryContent((MultiVertexGeometry)geom, openString,
                // sz);
                // Test InsertPoint(Point2D)
                com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint(
                    );
                com.esri.core.geometry.Point pt0 = new com.esri.core.geometry.Point(0.0, 0.0);
                // pt0.setZ(-1.0);
                // pt0.setID(7);
                com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0);
                // pt1.setZ(1.0);
                // pt1.setID(11);
                com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 1.0);
                // pt2.setZ(1.0);
                // pt2.setID(13);
                mpoint.add(pt0);
                mpoint.add(pt1);
                mpoint.add(pt2);
                com.esri.core.geometry.Point pt3 = new com.esri.core.geometry.Point(-11.0, -13.0);
                mpoint.add(pt3);
                mpoint.insertPoint(1, pt3);
                NUnit.Framework.Assert.IsTrue(mpoint.getPointCount() == 5);
                com.esri.core.geometry.Point pt;
                pt = mpoint.getPoint(0);
                NUnit.Framework.Assert.IsTrue(pt.getX() == pt0.getX() && pt.getY() == pt0.getY());

                /*
                 * &&
                 * pt.
                 * getZ
                 * () ==
                 * pt0
                 * .getZ
                 * ()
                 */
                pt = mpoint.getPoint(1);
                NUnit.Framework.Assert.IsTrue(pt.getX() == pt3.getX() && pt.getY() == pt3.getY());
                pt = mpoint.getPoint(2);
                NUnit.Framework.Assert.IsTrue(pt.getX() == pt1.getX() && pt.getY() == pt1.getY());

                /*
                 * &&
                 * pt.
                 * getZ
                 * () ==
                 * pt1
                 * .getZ
                 * ()
                 */
                pt = mpoint.getPoint(3);
                NUnit.Framework.Assert.IsTrue(pt.getX() == pt2.getX() && pt.getY() == pt2.getY());

                /*
                 * &&
                 * pt.
                 * getZ
                 * () ==
                 * pt2
                 * .getZ
                 * ()
                 */
                com.esri.core.geometry.Point point = new com.esri.core.geometry.Point();
                point.setXY(17.0, 19.0);
                // point.setID(12);
                // point.setM(5);
                mpoint.insertPoint(2, point);
                mpoint.add(point);
                NUnit.Framework.Assert.IsTrue(mpoint.getPointCount() == 7);
            }
            // double m;
            // int id;
            // pt = mpoint.getXYZ(2);
            // assertTrue(pt.x == 17.0 && pt.y == 19.0 && pt.z == defaultZ);
            // m = mpoint.getAttributeAsDbl(enum_value2(VertexDescription,
            // Semantics, M), 2, 0);
            // assertTrue(m == 5);
            // id = mpoint.getAttributeAsInt(enum_value2(VertexDescription,
            // Semantics, ID), 2, 0);
            // assertTrue(id == 23);
            //
            // pt = mpoint.getXYZ(3);
            // assertTrue(pt.x == pt1.x && pt.y == pt1.y && pt.z == pt1.z);
            // m = mpoint.getAttributeAsDbl(enum_value2(VertexDescription,
            // Semantics, M), 3, 0);
            // assertTrue(NumberUtils::IsNaN(m));
            // id = mpoint.getAttributeAsInt(enum_value2(VertexDescription,
            // Semantics, ID), 3, 0);
            // assertTrue(id == 11);
            com.esri.core.geometry.MultiPoint mpoint_1 = new com.esri.core.geometry.MultiPoint
                                                             ();
            com.esri.core.geometry.Point pt0_1 = new com.esri.core.geometry.Point(0.0, 0.0, -
                                                                                  1.0);
            com.esri.core.geometry.Point pt1_1 = new com.esri.core.geometry.Point(0.0, 0.0, 1.0
                                                                                  );
            com.esri.core.geometry.Point pt2_1 = new com.esri.core.geometry.Point(0.0, 1.0, 1.0
                                                                                  );
            mpoint_1.add(pt0_1);
            mpoint_1.add(pt1_1);
            mpoint_1.add(pt2_1);
            mpoint_1.removePoint(1);
            com.esri.core.geometry.Point pt_1;
            pt_1 = mpoint_1.getPoint(0);
            NUnit.Framework.Assert.IsTrue(pt_1.getX() == pt0_1.getX() && pt_1.getY() == pt0_1
                                          .getY());
            pt_1 = mpoint_1.getPoint(1);
            NUnit.Framework.Assert.IsTrue(pt_1.getX() == pt2_1.getX() && pt_1.getY() == pt2_1
                                          .getY());
            NUnit.Framework.Assert.IsTrue(mpoint_1.getPointCount() == 2);
        }
		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(ip.GetPoint(0).GetX(), -116, 0.1E7);
			NUnit.Framework.Assert.AreEqual(ip.GetPoint(0).GetY(), 20, 0.1E7);
			NUnit.Framework.Assert.AreEqual(ip.GetPoint(0).GetX(), -118, 0.1E7);
			NUnit.Framework.Assert.AreEqual(ip.GetPoint(0).GetY(), 21, 0.1E7);
		}
		public virtual void TestMultiPointPointRelate()
		{
			com.esri.core.geometry.OperatorRelate op = (com.esri.core.geometry.OperatorRelate)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Relate));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
			bool res;
			string scl;
			com.esri.core.geometry.MultiPoint m1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point p2 = new com.esri.core.geometry.Point();
			m1.Add(0, 0);
			p2.SetXY(0, 0);
			scl = "T*F***F**";
			res = op.Execute(m1, p2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			scl = "T*T***F**";
			res = op.Execute(m1, p2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(!res);
			m1.Add(1, 1);
			res = op.Execute(m1, p2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			m1.SetEmpty();
			m1.Add(1, 1);
			m1.Add(2, 2);
			scl = "FF0FFFTF2";
			res = op.Execute(m1, p2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
		}
		public virtual void TestIsSimpleMultiPoint1()
		{
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			bool result = simplifyOp.IsSimpleAsFeature(mp, sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			// empty is simple
			result = simplifyOp.IsSimpleAsFeature(simplifyOp.Execute(mp, sr4326, false, null), sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
		}
		public virtual void TestPolygonMultiPointRelate()
		{
			com.esri.core.geometry.OperatorRelate op = (com.esri.core.geometry.OperatorRelate)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Relate));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
			bool res;
			string scl;
			com.esri.core.geometry.Polygon polygon1 = new com.esri.core.geometry.Polygon();
			com.esri.core.geometry.MultiPoint multipoint2 = new com.esri.core.geometry.MultiPoint();
			polygon1.StartPath(0, 0);
			polygon1.LineTo(0, 10);
			polygon1.LineTo(10, 10);
			polygon1.LineTo(10, 0);
			multipoint2.Add(0, 0);
			multipoint2.Add(5, 5);
			scl = "TFT0F1FFT";
			res = op.Execute(polygon1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			scl = "T0FFFFT1T";
			// transpose of above
			res = op.Execute(multipoint2, polygon1, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(11, 11);
			scl = "TFT0F10FT";
			res = op.Execute(polygon1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(0, 5);
			scl = "TFT0F10FT";
			res = op.Execute(polygon1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			scl = "TFF0F10FT";
			res = op.Execute(polygon1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(!res);
			polygon1.SetEmpty();
			multipoint2.SetEmpty();
			polygon1.StartPath(0, 0);
			polygon1.LineTo(0, 20);
			polygon1.LineTo(20, 20);
			polygon1.LineTo(20, 0);
			multipoint2.Add(3, 3);
			multipoint2.Add(5, 5);
			op.AccelerateGeometry(polygon1, sr, com.esri.core.geometry.Geometry.GeometryAccelerationDegree.enumHot);
			scl = "TF2FF****";
			res = op.Execute(polygon1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			polygon1.SetEmpty();
			multipoint2.SetEmpty();
			polygon1.StartPath(4, 0);
			polygon1.LineTo(0, 4);
			polygon1.LineTo(4, 8);
			polygon1.LineTo(8, 4);
			multipoint2.Add(8, 1);
			multipoint2.Add(8, 2);
			op.AccelerateGeometry(polygon1, sr, com.esri.core.geometry.Geometry.GeometryAccelerationDegree.enumHot);
			scl = "FF2FF10F2";
			res = op.Execute(polygon1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
		}
		public static void TestCreation()
		{
			{
				// simple create
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint.GetType() == Geometry.Type.MultiPoint);
				// assertFalse(mpoint.getClass() == Polyline.class);
				NUnit.Framework.Assert.IsTrue(mpoint != null);
				NUnit.Framework.Assert.IsTrue(mpoint.GetType() == com.esri.core.geometry.Geometry.Type.MultiPoint);
				NUnit.Framework.Assert.IsTrue(mpoint.IsEmpty());
				NUnit.Framework.Assert.IsTrue(mpoint.GetPointCount() == 0);
				mpoint = null;
				NUnit.Framework.Assert.IsFalse(mpoint != null);
			}
			{
				// play with default attributes
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				SimpleTest(mpoint);
			}
			{
				// simple create 2D
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint != null);
				com.esri.core.geometry.MultiPoint mpoint1 = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint1 != null);
				mpoint.SetEmpty();
				com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(0, 0);
				mpoint.Add(pt);
				com.esri.core.geometry.Point pt3 = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt3.GetX() == 0 && pt3.GetY() == 0);
				// assertFalse(mpoint->HasAttribute(VertexDescription::Semantics::Z));
				// pt3.setZ(115.0);
				mpoint.SetPoint(0, pt3);
				pt3 = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt3.GetX() == 0 && pt3.GetY() == 0);
			}
			{
				/* && pt3.getZ() == 115 */
				// assertTrue(mpoint->HasAttribute(VertexDescription::Semantics::Z));
				// CompareGeometryContent(mpoint, &pt, 1);
				// move 3d
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint != null);
				com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(0, 0);
				mpoint.Add(pt);
				com.esri.core.geometry.Point pt3 = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt3.GetX() == 0 && pt3.GetY() == 0);
			}
			{
				/* && pt3.getZ() == 0 */
				// test QueryInterval
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt1.setZ(-1.0);
				com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt2.setZ(1.0);
				mpoint.Add(pt1);
				mpoint.Add(pt2);
				// Envelope1D e =
				// mpoint->QueryInterval(enum_value2(VertexDescription, Semantics,
				// Z), 0);
				com.esri.core.geometry.Envelope e = new com.esri.core.geometry.Envelope();
				mpoint.QueryEnvelope(e);
			}
			{
				// assertTrue(e.get == -1.0 && e.vmax == 1.0);
				com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
			}
			{
				// int sz = sizeof(openString) / sizeof(openString[0]);
				// for (int i = 0; i < sz; i++)
				// geom.add(openString[i]);
				// CompareGeometryContent(geom, openString, sz);
				com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
			}
			{
				// int sz = sizeof(openString) / sizeof(openString[0]);
				// Point point = GCNEW Point;
				// for (int i = 0; i < sz; i++)
				// {
				// point.setXY(openString[i]);
				// geom.add(point);
				// }
				// CompareGeometryContent(geom, openString, sz);
				// Test AddPoints
				com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
			}
			{
				// int sz = sizeof(openString) / sizeof(openString[0]);
				// geom.addPoints(openString, sz, 0, -1);
				// CompareGeometryContent((MultiVertexGeometry)geom, openString,
				// sz);
				// Test InsertPoint(Point2D)
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point pt0 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt0.setZ(-1.0);
				// pt0.setID(7);
				com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt1.setZ(1.0);
				// pt1.setID(11);
				com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 1.0);
				// pt2.setZ(1.0);
				// pt2.setID(13);
				mpoint.Add(pt0);
				mpoint.Add(pt1);
				mpoint.Add(pt2);
				com.esri.core.geometry.Point pt3 = new com.esri.core.geometry.Point(-11.0, -13.0);
				mpoint.Add(pt3);
				mpoint.InsertPoint(1, pt3);
				NUnit.Framework.Assert.IsTrue(mpoint.GetPointCount() == 5);
				com.esri.core.geometry.Point pt;
				pt = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt0.GetX() && pt.GetY() == pt0.GetY());
				/*
				* &&
				* pt.
				* getZ
				* () ==
				* pt0
				* .getZ
				* ()
				*/
				pt = mpoint.GetPoint(1);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt3.GetX() && pt.GetY() == pt3.GetY());
				pt = mpoint.GetPoint(2);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt1.GetX() && pt.GetY() == pt1.GetY());
				/*
				* &&
				* pt.
				* getZ
				* () ==
				* pt1
				* .getZ
				* ()
				*/
				pt = mpoint.GetPoint(3);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt2.GetX() && pt.GetY() == pt2.GetY());
				/*
				* &&
				* pt.
				* getZ
				* () ==
				* pt2
				* .getZ
				* ()
				*/
				com.esri.core.geometry.Point point = new com.esri.core.geometry.Point();
				point.SetXY(17.0, 19.0);
				// point.setID(12);
				// point.setM(5);
				mpoint.InsertPoint(2, point);
				mpoint.Add(point);
				NUnit.Framework.Assert.IsTrue(mpoint.GetPointCount() == 7);
			}
			// double m;
			// int id;
			// pt = mpoint.getXYZ(2);
			// assertTrue(pt.x == 17.0 && pt.y == 19.0 && pt.z == defaultZ);
			// m = mpoint.getAttributeAsDbl(enum_value2(VertexDescription,
			// Semantics, M), 2, 0);
			// assertTrue(m == 5);
			// id = mpoint.getAttributeAsInt(enum_value2(VertexDescription,
			// Semantics, ID), 2, 0);
			// assertTrue(id == 23);
			//
			// pt = mpoint.getXYZ(3);
			// assertTrue(pt.x == pt1.x && pt.y == pt1.y && pt.z == pt1.z);
			// m = mpoint.getAttributeAsDbl(enum_value2(VertexDescription,
			// Semantics, M), 3, 0);
			// assertTrue(NumberUtils::IsNaN(m));
			// id = mpoint.getAttributeAsInt(enum_value2(VertexDescription,
			// Semantics, ID), 3, 0);
			// assertTrue(id == 11);
			com.esri.core.geometry.MultiPoint mpoint_1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point pt0_1 = new com.esri.core.geometry.Point(0.0, 0.0, -1.0);
			com.esri.core.geometry.Point pt1_1 = new com.esri.core.geometry.Point(0.0, 0.0, 1.0);
			com.esri.core.geometry.Point pt2_1 = new com.esri.core.geometry.Point(0.0, 1.0, 1.0);
			mpoint_1.Add(pt0_1);
			mpoint_1.Add(pt1_1);
			mpoint_1.Add(pt2_1);
			mpoint_1.RemovePoint(1);
			com.esri.core.geometry.Point pt_1;
			pt_1 = mpoint_1.GetPoint(0);
			NUnit.Framework.Assert.IsTrue(pt_1.GetX() == pt0_1.GetX() && pt_1.GetY() == pt0_1.GetY());
			pt_1 = mpoint_1.GetPoint(1);
			NUnit.Framework.Assert.IsTrue(pt_1.GetX() == pt2_1.GetX() && pt_1.GetY() == pt2_1.GetY());
			NUnit.Framework.Assert.IsTrue(mpoint_1.GetPointCount() == 2);
		}
		public virtual void TestPolylineMultiPointRelate()
		{
			com.esri.core.geometry.OperatorRelate op = com.esri.core.geometry.OperatorRelate.Local();
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
			bool res;
			string scl;
			com.esri.core.geometry.Polyline polyline1 = new com.esri.core.geometry.Polyline();
			com.esri.core.geometry.MultiPoint multipoint2 = new com.esri.core.geometry.MultiPoint();
			polyline1.StartPath(0, 0);
			polyline1.LineTo(10, 0);
			multipoint2.Add(0, 0);
			multipoint2.Add(5, 5);
			scl = "FF10F00F2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(5, 0);
			scl = "0F10F00F2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			scl = "0F11F00F2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(!res);
			polyline1.SetEmpty();
			multipoint2.SetEmpty();
			polyline1.StartPath(4, 0);
			polyline1.LineTo(0, 4);
			polyline1.LineTo(4, 8);
			polyline1.LineTo(8, 4);
			polyline1.LineTo(4, 0);
			// has no boundary
			multipoint2.Add(8, 1);
			multipoint2.Add(8, 2);
			op.AccelerateGeometry(polyline1, sr, com.esri.core.geometry.Geometry.GeometryAccelerationDegree.enumHot);
			scl = "FF1FFF0F2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			polyline1.SetEmpty();
			multipoint2.SetEmpty();
			polyline1.StartPath(4, 0);
			polyline1.LineTo(4, 0);
			multipoint2.Add(8, 1);
			multipoint2.Add(8, 2);
			scl = "FF0FFF0F2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(-2, 0);
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			op.AccelerateGeometry(polyline1, sr, com.esri.core.geometry.Geometry.GeometryAccelerationDegree.enumHot);
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			polyline1.SetEmpty();
			multipoint2.SetEmpty();
			polyline1.StartPath(10, 10);
			polyline1.LineTo(10, 10);
			multipoint2.Add(10, 10);
			scl = "0FFFFFFF2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			polyline1.StartPath(12, 12);
			polyline1.LineTo(12, 12);
			scl = "0F0FFFFF2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			polyline1.SetEmpty();
			multipoint2.SetEmpty();
			polyline1.StartPath(10, 10);
			polyline1.LineTo(10, 10);
			multipoint2.Add(0, 0);
			scl = "FF0FFF0F2";
			res = op.Execute(polyline1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
		}
		public static com.esri.core.geometry.MultiPoint MakeMultiPoint2()
		{
			com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point();
			pt1.SetX(0.0);
			pt1.SetY(0.0);
			pt1.SetZ(-1.0);
			mpoint.Add(pt1);
			return mpoint;
		}
		public virtual void TestMultiPointMultipointRelate()
		{
			com.esri.core.geometry.OperatorRelate op = (com.esri.core.geometry.OperatorRelate)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Relate));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
			bool res;
			string scl;
			com.esri.core.geometry.MultiPoint multipoint1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.MultiPoint multipoint2 = new com.esri.core.geometry.MultiPoint();
			multipoint1.Add(0, 0);
			multipoint2.Add(0, 0);
			scl = "TFFFFFFF2";
			res = op.Execute(multipoint1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(5, 5);
			scl = "TFFFFFTF2";
			res = op.Execute(multipoint1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint1.Add(-5, 0);
			scl = "0FTFFFTF2";
			res = op.Execute(multipoint1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = com.esri.core.geometry.GeometryEngine.Relate(multipoint1, multipoint2, sr, scl);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint1.SetEmpty();
			multipoint2.SetEmpty();
			multipoint1.Add(0, 0);
			multipoint2.Add(1, 1);
			scl = "FFTFFF0FT";
			res = op.Execute(multipoint1, multipoint2, sr, scl, null);
			NUnit.Framework.Assert.IsTrue(res);
		}
		public virtual void TestEqualsOnMultiPoints()
		{
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
			com.esri.core.geometry.MultiPoint baseMp = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.MultiPoint compMp = new com.esri.core.geometry.MultiPoint();
			baseMp.Add(new com.esri.core.geometry.Point(-116, 40));
			baseMp.Add(new com.esri.core.geometry.Point(-120, 39));
			baseMp.Add(new com.esri.core.geometry.Point(-121, 10));
			baseMp.Add(new com.esri.core.geometry.Point(-130, 12));
			baseMp.Add(new com.esri.core.geometry.Point(-108, 25));
			compMp.Add(new com.esri.core.geometry.Point(-116, 40));
			compMp.Add(new com.esri.core.geometry.Point(-120, 39));
			compMp.Add(new com.esri.core.geometry.Point(-121, 10));
			compMp.Add(new com.esri.core.geometry.Point(-130, 12));
			compMp.Add(new com.esri.core.geometry.Point(-108, 25));
			bool isEqual;
			try
			{
				isEqual = com.esri.core.geometry.GeometryEngine.Equals(baseMp, compMp, sr);
			}
			catch (System.ArgumentException)
			{
				isEqual = false;
			}
			NUnit.Framework.Assert.IsTrue(isEqual);
		}
		public virtual void TestMultiPointPointEquals()
		{
			com.esri.core.geometry.OperatorEquals equals = (com.esri.core.geometry.OperatorEquals)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Equals));
			com.esri.core.geometry.OperatorWithin within = (com.esri.core.geometry.OperatorWithin)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Within));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(102100);
			double tolerance = sr.GetTolerance(com.esri.core.geometry.VertexDescription.Semantics.POSITION);
			com.esri.core.geometry.MultiPoint multipoint1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point point2 = new com.esri.core.geometry.Point();
			multipoint1.Add(2, 2);
			multipoint1.Add(2, 2);
			point2.SetXY(2, 2);
			WiggleGeometry(multipoint1, 0.001, 123);
			bool res = equals.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = equals.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = within.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = within.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint1.Add(4, 4);
			res = equals.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = equals.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = within.Execute(multipoint1, point2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = within.Execute(point2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
		}
예제 #44
0
        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 TestPolylineMultiPointDisjoint()
		{
			com.esri.core.geometry.OperatorDisjoint disjoint = (com.esri.core.geometry.OperatorDisjoint)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Disjoint));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(102100);
			double tolerance = sr.GetTolerance(com.esri.core.geometry.VertexDescription.Semantics.POSITION);
			com.esri.core.geometry.Polyline polyline1 = new com.esri.core.geometry.Polyline();
			com.esri.core.geometry.MultiPoint multipoint2 = new com.esri.core.geometry.MultiPoint();
			polyline1.StartPath(0, 0);
			polyline1.LineTo(2, 0);
			polyline1.LineTo(4, 2);
			multipoint2.Add(1, 1);
			multipoint2.Add(2, 2);
			multipoint2.Add(3, 0);
			bool res = disjoint.Execute(polyline1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = disjoint.Execute(multipoint2, polyline1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(3, 1);
			res = disjoint.Execute(polyline1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = disjoint.Execute(multipoint2, polyline1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			polyline1.StartPath(1, -4);
			polyline1.LineTo(1, -3);
			polyline1.LineTo(1, -2);
			polyline1.LineTo(1, -1);
			polyline1.LineTo(1, 0);
			polyline1.LineTo(1, 1);
			disjoint.AccelerateGeometry(polyline1, sr, com.esri.core.geometry.Geometry.GeometryAccelerationDegree.enumHot);
			res = disjoint.Execute(polyline1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = disjoint.Execute(multipoint2, polyline1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
		}
예제 #46
0
 public virtual void testMultiPoint()
 {
     com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
     mp.add(new com.esri.core.geometry.Point(100, 200));
     mp.add(new com.esri.core.geometry.Point(101, 201));
     mp.add(new com.esri.core.geometry.Point(102, 202));
     NUnit.Framework.Assert.IsFalse(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                    .M));
     mp.addAttribute(com.esri.core.geometry.VertexDescription.Semantics.M);
     NUnit.Framework.Assert.IsTrue(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                   .M));
     NUnit.Framework.Assert.IsTrue(double.IsNaN(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                                     .M, 0, 0)));
     NUnit.Framework.Assert.IsTrue(double.IsNaN(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                                     .M, 1, 0)));
     NUnit.Framework.Assert.IsTrue(double.IsNaN(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                                     .M, 2, 0)));
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.M, 0, 0, 1);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.M, 1, 0, 2);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.M, 2, 0, 3);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 0, 0) == 1);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 1, 0) == 2);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 2, 0) == 3);
     NUnit.Framework.Assert.IsFalse(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                    .Z));
     mp.addAttribute(com.esri.core.geometry.VertexDescription.Semantics.Z);
     NUnit.Framework.Assert.IsTrue(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                   .Z));
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 0, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 1, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 2, 0) == 0);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.Z, 0, 0, 11);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.Z, 1, 0, 21);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.Z, 2, 0, 31);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 0, 0) == 1);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 1, 0) == 2);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 2, 0) == 3);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 0, 0) == 11);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 1, 0) == 21);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 2, 0) == 31);
     NUnit.Framework.Assert.IsFalse(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                    .ID));
     mp.addAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID);
     NUnit.Framework.Assert.IsTrue(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                   .ID));
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 0, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 1, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 2, 0) == 0);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID, 0, 0, -11);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID, 1, 0, -21);
     mp.setAttribute(com.esri.core.geometry.VertexDescription.Semantics.ID, 2, 0, -31);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 0, 0) == 1);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 1, 0) == 2);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .M, 2, 0) == 3);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 0, 0) == 11);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 1, 0) == 21);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 2, 0) == 31);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 0, 0) == -11);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 1, 0) == -21);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 2, 0) == -31);
     mp.dropAttribute(com.esri.core.geometry.VertexDescription.Semantics.M);
     NUnit.Framework.Assert.IsFalse(mp.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                    .M));
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 0, 0) == 11);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 1, 0) == 21);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 2, 0) == 31);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 0, 0) == -11);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 1, 0) == -21);
     NUnit.Framework.Assert.IsTrue(mp.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .ID, 2, 0) == -31);
     com.esri.core.geometry.MultiPoint mp1 = new com.esri.core.geometry.MultiPoint();
     mp.copyTo(mp1);
     NUnit.Framework.Assert.IsFalse(mp1.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                     .M));
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .Z, 0, 0) == 11);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .Z, 1, 0) == 21);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .Z, 2, 0) == 31);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .ID, 0, 0) == -11);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .ID, 1, 0) == -21);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .ID, 2, 0) == -31);
     mp1.dropAllAttributes();
     mp1.mergeVertexDescription(mp.getDescription());
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .Z, 0, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .Z, 1, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .Z, 2, 0) == 0);
     NUnit.Framework.Assert.IsTrue(double.IsNaN(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                                      .M, 0, 0)));
     NUnit.Framework.Assert.IsTrue(double.IsNaN(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                                      .M, 1, 0)));
     NUnit.Framework.Assert.IsTrue(double.IsNaN(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                                      .M, 2, 0)));
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .ID, 0, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .ID, 1, 0) == 0);
     NUnit.Framework.Assert.IsTrue(mp1.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                         .ID, 2, 0) == 0);
 }
		public virtual void TestIsSimpleMultiPoint2FarApart()
		{
			// Two point test: far apart
			com.esri.core.geometry.MultiPoint mp = new com.esri.core.geometry.MultiPoint();
			mp.Add(20, 10);
			mp.Add(100, 100);
			bool result = simplifyOp.IsSimpleAsFeature(mp, sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			result = simplifyOp.IsSimpleAsFeature(simplifyOp.Execute(mp, sr4326, false, null), sr4326, false, null, null);
			NUnit.Framework.Assert.IsTrue(result);
			NUnit.Framework.Assert.IsTrue(mp.GetPointCount() == 2);
		}
		public static void TestPointTypes()
		{
			com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal.GetInstance();
			com.esri.core.geometry.OperatorDifference difference = (com.esri.core.geometry.OperatorDifference)engine.GetOperator(com.esri.core.geometry.Operator.Type.Difference);
			com.esri.core.geometry.OperatorSymmetricDifference sym_difference = (com.esri.core.geometry.OperatorSymmetricDifference)engine.GetOperator(com.esri.core.geometry.Operator.Type.SymmetricDifference);
			{
				// point/point
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
				point_1.SetXY(0, 0);
				point_2.SetXY(0.000000009, 0.000000009);
				com.esri.core.geometry.Point differenced = (com.esri.core.geometry.Point)(difference.Execute(point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced.IsEmpty());
				com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint)(sym_difference.Execute(point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(sym_differenced.IsEmpty());
			}
			{
				// point/point
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
				point_1.SetXY(0, 0);
				point_2.SetXY(0.000000009, 0.0);
				com.esri.core.geometry.Point differenced = (com.esri.core.geometry.Point)(difference.Execute(point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced.IsEmpty());
				com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint)(sym_difference.Execute(point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(sym_differenced.IsEmpty());
			}
			{
				// point/point
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
				point_1.SetXY(0, 0);
				point_2.SetXY(0.00000002, 0.00000002);
				com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				com.esri.core.geometry.Point differenced_2 = (com.esri.core.geometry.Point)(difference.Execute(point_2, point_1, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_2.IsEmpty());
				com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint)(sym_difference.Execute(point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!sym_differenced.IsEmpty());
				NUnit.Framework.Assert.IsTrue(sym_differenced.GetXY(0).x == 0 && sym_differenced.GetXY(0).y == 0);
				NUnit.Framework.Assert.IsTrue(sym_differenced.GetXY(1).x == 0.00000002 && sym_differenced.GetXY(1).y == 0.00000002);
			}
			{
				// multi_point/point
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
				multi_point_1.Add(0, 0);
				multi_point_1.Add(1, 1);
				point_2.SetXY(0.000000009, 0.000000009);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1.GetPointCount() == 1);
				NUnit.Framework.Assert.IsTrue(differenced_1.GetXY(0).x == 1 && differenced_1.GetXY(0).y == 1);
				com.esri.core.geometry.Point differenced_2 = (com.esri.core.geometry.Point)(difference.Execute(point_2, multi_point_1, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_2.IsEmpty());
			}
			{
				// multi_point/point
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
				multi_point_1.Add(0, 0);
				multi_point_1.Add(1, 1);
				point_2.SetXY(0.000000009, 0.0);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1.GetXY(0).x == 1.0 && differenced_1.GetXY(0).y == 1.0);
				com.esri.core.geometry.Point differenced_2 = (com.esri.core.geometry.Point)(difference.Execute(point_2, multi_point_1, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_2.IsEmpty());
				com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint)(sym_difference.Execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!sym_differenced.IsEmpty());
				NUnit.Framework.Assert.IsTrue(sym_differenced.GetPointCount() == 1);
				NUnit.Framework.Assert.IsTrue(sym_differenced.GetXY(0).x == 1 && sym_differenced.GetXY(0).y == 1);
			}
			{
				// multi_point/point
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point();
				multi_point_1.Add(0, 0);
				multi_point_1.Add(0, 0);
				point_2.SetXY(0.000000009, 0.0);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_1.IsEmpty());
				com.esri.core.geometry.MultiPoint sym_differenced = (com.esri.core.geometry.MultiPoint)(sym_difference.Execute(multi_point_1, point_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(sym_differenced.IsEmpty());
			}
			{
				// multi_point/polygon
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
				multi_point_1.Add(0, 0);
				multi_point_1.Add(0, 0);
				multi_point_1.Add(2, 2);
				polygon_2.StartPath(-1, -1);
				polygon_2.LineTo(-1, 1);
				polygon_2.LineTo(1, 1);
				polygon_2.LineTo(1, -1);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1.GetPointCount() == 1);
				NUnit.Framework.Assert.IsTrue(differenced_1.GetXY(0).x == 2 && differenced_1.GetXY(0).y == 2);
			}
			{
				// multi_point/polygon
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
				multi_point_1.Add(0, 0);
				multi_point_1.Add(0, 0);
				multi_point_1.Add(1, 1);
				polygon_2.StartPath(-1, -1);
				polygon_2.LineTo(-1, 1);
				polygon_2.LineTo(1, 1);
				polygon_2.LineTo(1, -1);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_1.IsEmpty());
			}
			{
				// multi_point/envelope
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Envelope envelope_2 = new com.esri.core.geometry.Envelope();
				multi_point_1.Add(-2, 0);
				multi_point_1.Add(0, 2);
				multi_point_1.Add(2, 0);
				multi_point_1.Add(0, -2);
				envelope_2.SetCoords(-1, -1, 1, 1);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, envelope_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty() && differenced_1 == multi_point_1);
			}
			{
				// multi_point/polygon
				com.esri.core.geometry.MultiPoint multi_point_1 = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
				multi_point_1.Add(2, 2);
				multi_point_1.Add(2, 2);
				multi_point_1.Add(-2, -2);
				polygon_2.StartPath(-1, -1);
				polygon_2.LineTo(-1, 1);
				polygon_2.LineTo(1, 1);
				polygon_2.LineTo(1, -1);
				com.esri.core.geometry.MultiPoint differenced_1 = (com.esri.core.geometry.MultiPoint)(difference.Execute(multi_point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty() && differenced_1 == multi_point_1);
			}
			{
				// point/polygon
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
				point_1.SetXY(0, 0);
				polygon_2.StartPath(-1, -1);
				polygon_2.LineTo(-1, 1);
				polygon_2.LineTo(1, 1);
				polygon_2.LineTo(1, -1);
				com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_1.IsEmpty());
				polygon_2.SetEmpty();
				polygon_2.StartPath(1, 1);
				polygon_2.LineTo(1, 2);
				polygon_2.LineTo(2, 2);
				polygon_2.LineTo(2, 1);
				differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
			}
			{
				// point/polygon
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Polygon polygon_2 = new com.esri.core.geometry.Polygon();
				point_1.SetXY(0, 0);
				polygon_2.StartPath(1, 0);
				polygon_2.LineTo(0, 1);
				polygon_2.LineTo(1, 1);
				com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
				point_1.SetEmpty();
				point_1.SetXY(0.5, 0.5);
				polygon_2.SetEmpty();
				polygon_2.StartPath(1, 0);
				polygon_2.LineTo(0, 1);
				polygon_2.LineTo(1, 1);
				differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polygon_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_1.IsEmpty());
			}
			{
				// point/envelope
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Envelope envelope_2 = new com.esri.core.geometry.Envelope();
				point_1.SetXY(0, 0);
				envelope_2.SetCoords(-1, -1, 1, 1);
				com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, envelope_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_1.IsEmpty());
				envelope_2.SetEmpty();
				envelope_2.SetCoords(1, 1, 2, 2);
				differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, envelope_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
			}
			{
				// point/polyline
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point();
				com.esri.core.geometry.Polyline polyline_2 = new com.esri.core.geometry.Polyline();
				point_1.SetXY(0, 0);
				polyline_2.StartPath(-1, 0);
				polyline_2.LineTo(1, 0);
				com.esri.core.geometry.Point differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polyline_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(differenced_1.IsEmpty());
				polyline_2.SetEmpty();
				polyline_2.StartPath(1, 0);
				polyline_2.LineTo(2, 0);
				differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polyline_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
				polyline_2.SetEmpty();
				polyline_2.StartPath(-1, -1);
				polyline_2.LineTo(-1, 1);
				polyline_2.LineTo(1, 1);
				polyline_2.LineTo(1, -1);
				differenced_1 = (com.esri.core.geometry.Point)(difference.Execute(point_1, polyline_2, com.esri.core.geometry.SpatialReference.Create(4326), null));
				NUnit.Framework.Assert.IsTrue(!differenced_1.IsEmpty());
				NUnit.Framework.Assert.IsTrue(differenced_1 == point_1);
			}
		}
예제 #49
0
        public static void testClipGeometries()
        {
            // RandomTest();
            com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal
                                                                 .getInstance();
            com.esri.core.geometry.OperatorClip clipOp = (com.esri.core.geometry.OperatorClip
                                                          )engine.getOperator(com.esri.core.geometry.Operator.Type.Clip);
            com.esri.core.geometry.Polygon polygon = makePolygon();
            com.esri.core.geometry.SimpleGeometryCursor polygonCurs = new com.esri.core.geometry.SimpleGeometryCursor
                                                                          (polygon);
            com.esri.core.geometry.Polyline             polyline     = makePolyline();
            com.esri.core.geometry.SimpleGeometryCursor polylineCurs = new com.esri.core.geometry.SimpleGeometryCursor
                                                                           (polyline);
            com.esri.core.geometry.MultiPoint           multipoint     = makeMultiPoint();
            com.esri.core.geometry.SimpleGeometryCursor multipointCurs = new com.esri.core.geometry.SimpleGeometryCursor
                                                                             (multipoint);
            com.esri.core.geometry.Point point = makePoint();
            com.esri.core.geometry.SimpleGeometryCursor pointCurs = new com.esri.core.geometry.SimpleGeometryCursor
                                                                        (point);
            com.esri.core.geometry.SpatialReference spatialRef = com.esri.core.geometry.SpatialReference
                                                                 .create(3857);
            com.esri.core.geometry.Envelope2D envelope = new com.esri.core.geometry.Envelope2D
                                                             ();
            envelope.xmin = 0;
            envelope.xmax = 20;
            envelope.ymin = 5;
            envelope.ymax = 15;
            // Cursor implementation
            com.esri.core.geometry.GeometryCursor clipPolygonCurs = clipOp.execute(polygonCurs
                                                                                   , envelope, spatialRef, null);
            com.esri.core.geometry.Polygon clippedPolygon = (com.esri.core.geometry.Polygon)clipPolygonCurs
                                                            .next();
            double area = clippedPolygon.calculateArea2D();

            NUnit.Framework.Assert.IsTrue(System.Math.abs(area - 25) < 0.00001);
            // Single Geometry implementation
            clippedPolygon = (com.esri.core.geometry.Polygon)clipOp.execute(polygon, envelope
                                                                            , spatialRef, null);
            area = clippedPolygon.calculateArea2D();
            NUnit.Framework.Assert.IsTrue(System.Math.abs(area - 25) < 0.00001);
            // Cursor implementation
            com.esri.core.geometry.GeometryCursor clipPolylineCurs = clipOp.execute(polylineCurs
                                                                                    , envelope, spatialRef, null);
            com.esri.core.geometry.Polyline clippedPolyline = (com.esri.core.geometry.Polyline
                                                               )clipPolylineCurs.next();
            double length = clippedPolyline.calculateLength2D();

            NUnit.Framework.Assert.IsTrue(System.Math.abs(length - 10 * System.Math.sqrt(2.0)
                                                          ) < 1e-10);
            // Single Geometry implementation
            clippedPolyline = (com.esri.core.geometry.Polyline)clipOp.execute(polyline, envelope
                                                                              , spatialRef, null);
            length = clippedPolyline.calculateLength2D();
            NUnit.Framework.Assert.IsTrue(System.Math.abs(length - 10 * System.Math.sqrt(2.0)
                                                          ) < 1e-10);
            // Cursor implementation
            com.esri.core.geometry.GeometryCursor clipMulti_pointCurs = clipOp.execute(multipointCurs
                                                                                       , envelope, spatialRef, null);
            com.esri.core.geometry.MultiPoint clipped_multi_point = (com.esri.core.geometry.MultiPoint
                                                                     )clipMulti_pointCurs.next();
            int pointCount = clipped_multi_point.getPointCount();

            NUnit.Framework.Assert.IsTrue(pointCount == 2);
            // Cursor implementation
            com.esri.core.geometry.GeometryCursor clipPointCurs = clipOp.execute(pointCurs, envelope
                                                                                 , spatialRef, null);
            com.esri.core.geometry.Point clippedPoint = (com.esri.core.geometry.Point)clipPointCurs
                                                        .next();
            NUnit.Framework.Assert.IsTrue(clippedPoint != null);
            // RandomTest();
            com.esri.core.geometry.Polyline _poly = new com.esri.core.geometry.Polyline();
            _poly.startPath(2, 2);
            _poly.lineTo(0, 0);
            com.esri.core.geometry.Envelope2D _env = new com.esri.core.geometry.Envelope2D();
            _env.setCoords(2, 1, 5, 3);
            com.esri.core.geometry.Polyline _clippedPolyline = (com.esri.core.geometry.Polyline
                                                                )clipOp.execute(_poly, _env, spatialRef, null);
            NUnit.Framework.Assert.IsTrue(_clippedPolyline.isEmpty());
            {
                com.esri.core.geometry.Polygon poly = new com.esri.core.geometry.Polygon();
                poly.addEnvelope(new com.esri.core.geometry.Envelope2D(0, 0, 100, 100), false);
                poly.addEnvelope(new com.esri.core.geometry.Envelope2D(5, 5, 95, 95), true);
                com.esri.core.geometry.Polygon clippedPoly = (com.esri.core.geometry.Polygon)clipOp
                                                             .execute(poly, new com.esri.core.geometry.Envelope2D(-10, -10, 110, 50), spatialRef
                                                                      , null);
                NUnit.Framework.Assert.IsTrue(clippedPoly.getPathCount() == 1);
                NUnit.Framework.Assert.IsTrue(clippedPoly.getPointCount() == 8);
            }
        }
		public static com.esri.core.geometry.MultiPoint MakeMultiPoint3()
		{
			com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point2D pt1 = new com.esri.core.geometry.Point2D();
			pt1.x = 1.0;
			pt1.y = 1.0;
			com.esri.core.geometry.Point2D pt2 = new com.esri.core.geometry.Point2D();
			pt2.x = 5.0;
			pt2.y = 5.0;
			mpoint.Add(pt1.x, pt1.y);
			mpoint.Add(pt2.x, pt2.y);
			return mpoint;
		}
		public virtual void TestMultiPointMultiPointOverlaps()
		{
			com.esri.core.geometry.OperatorOverlaps overlaps = (com.esri.core.geometry.OperatorOverlaps)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Overlaps));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(102100);
			double tolerance = sr.GetTolerance(com.esri.core.geometry.VertexDescription.Semantics.POSITION);
			com.esri.core.geometry.MultiPoint multipoint1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.MultiPoint multipoint2 = new com.esri.core.geometry.MultiPoint();
			multipoint1.Add(4, 4);
			multipoint1.Add(6, 4);
			multipoint2.Add(6, 2);
			multipoint2.Add(2, 6);
			bool res = overlaps.Execute(multipoint1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = overlaps.Execute(multipoint2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			multipoint1.Add(10, 10);
			multipoint2.Add(6, 2);
			res = overlaps.Execute(multipoint1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = overlaps.Execute(multipoint2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			multipoint1.Add(6, 2);
			res = overlaps.Execute(multipoint1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = overlaps.Execute(multipoint2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint1.Add(2, 6);
			res = overlaps.Execute(multipoint1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = overlaps.Execute(multipoint2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			multipoint2.Add(1, 1);
			res = overlaps.Execute(multipoint1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			res = overlaps.Execute(multipoint2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(10, 10);
			multipoint2.Add(4, 4);
			multipoint2.Add(6, 4);
			res = overlaps.Execute(multipoint1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = overlaps.Execute(multipoint2, multipoint1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
		}
        /// <exception cref="org.codehaus.jackson.JsonParseException"/>
        /// <exception cref="System.IO.IOException"/>
        internal virtual bool testMultiPoint()
        {
            bool bAnswer = true;

            com.esri.core.geometry.MultiPoint multiPoint1 = new com.esri.core.geometry.MultiPoint
                                                                ();
            multiPoint1.add(-97.06138, 32.837);
            multiPoint1.add(-97.06133, 32.836);
            multiPoint1.add(-97.06124, 32.834);
            multiPoint1.add(-97.06127, 32.832);
            {
                string s = com.esri.core.geometry.GeometryEngine.geometryToJson(spatialReferenceWGS84
                                                                                , multiPoint1);
                org.codehaus.jackson.JsonParser    mPointWgs84Parser = factory.createJsonParser(s);
                com.esri.core.geometry.MapGeometry mPointWgs84MP     = com.esri.core.geometry.GeometryEngine
                                                                       .jsonToGeometry(mPointWgs84Parser);
                NUnit.Framework.Assert.IsTrue(multiPoint1.getPointCount() == ((com.esri.core.geometry.MultiPoint
                                                                               )mPointWgs84MP.getGeometry()).getPointCount());
                NUnit.Framework.Assert.IsTrue(multiPoint1.getPoint(0).getX() == ((com.esri.core.geometry.MultiPoint
                                                                                  )mPointWgs84MP.getGeometry()).getPoint(0).getX());
                NUnit.Framework.Assert.IsTrue(multiPoint1.getPoint(0).getY() == ((com.esri.core.geometry.MultiPoint
                                                                                  )mPointWgs84MP.getGeometry()).getPoint(0).getY());
                int lastIndex = multiPoint1.getPointCount() - 1;
                NUnit.Framework.Assert.IsTrue(multiPoint1.getPoint(lastIndex).getX() == ((com.esri.core.geometry.MultiPoint
                                                                                          )mPointWgs84MP.getGeometry()).getPoint(lastIndex).getX());
                NUnit.Framework.Assert.IsTrue(multiPoint1.getPoint(lastIndex).getY() == ((com.esri.core.geometry.MultiPoint
                                                                                          )mPointWgs84MP.getGeometry()).getPoint(lastIndex).getY());
                NUnit.Framework.Assert.IsTrue(spatialReferenceWGS84.getID() == mPointWgs84MP.getSpatialReference
                                                  ().getID());
                if (!checkResultSpatialRef(mPointWgs84MP, 4326, 0))
                {
                    bAnswer = false;
                }
            }
            {
                com.esri.core.geometry.MultiPoint p = new com.esri.core.geometry.MultiPoint();
                p.addAttribute(com.esri.core.geometry.VertexDescription.Semantics.Z);
                p.addAttribute(com.esri.core.geometry.VertexDescription.Semantics.M);
                string s = com.esri.core.geometry.GeometryEngine.geometryToJson(spatialReferenceWebMerc1
                                                                                , p);
                NUnit.Framework.Assert.IsTrue(s.Equals("{\"hasZ\":true,\"hasM\":true,\"points\":[],\"spatialReference\":{\"wkid\":102100,\"latestWkid\":3857}}"
                                                       ));
                p.add(10.0, 20.0, 30.0);
                p.add(20.0, 40.0, 60.0);
                s = com.esri.core.geometry.GeometryEngine.geometryToJson(spatialReferenceWebMerc1
                                                                         , p);
                NUnit.Framework.Assert.IsTrue(s.Equals("{\"hasZ\":true,\"hasM\":true,\"points\":[[10,20,30,null],[20,40,60,null]],\"spatialReference\":{\"wkid\":102100,\"latestWkid\":3857}}"
                                                       ));
            }
            {
                string points = "{\"hasM\" : false, \"hasZ\" : true, \"uncle remus\" : null, \"points\" : [ [0,0,1], [0.0,10.0,1], [10.0,10.0,1], [10.0,0.0,1, 6666] ],\"spatialReference\" : {\"wkid\" : 4326}}";
                com.esri.core.geometry.MapGeometry mp = com.esri.core.geometry.GeometryEngine.jsonToGeometry
                                                            (factory.createJsonParser(points));
                com.esri.core.geometry.MultiPoint multipoint = (com.esri.core.geometry.MultiPoint
                                                                )mp.getGeometry();
                NUnit.Framework.Assert.IsTrue(multipoint.getPointCount() == 4);
                com.esri.core.geometry.Point2D point2d;
                point2d = multipoint.getXY(0);
                NUnit.Framework.Assert.IsTrue(point2d.x == 0.0 && point2d.y == 0.0);
                point2d = multipoint.getXY(1);
                NUnit.Framework.Assert.IsTrue(point2d.x == 0.0 && point2d.y == 10.0);
                point2d = multipoint.getXY(2);
                NUnit.Framework.Assert.IsTrue(point2d.x == 10.0 && point2d.y == 10.0);
                point2d = multipoint.getXY(3);
                NUnit.Framework.Assert.IsTrue(point2d.x == 10.0 && point2d.y == 0.0);
                NUnit.Framework.Assert.IsTrue(multipoint.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                                      .Z));
                NUnit.Framework.Assert.IsTrue(!multipoint.hasAttribute(com.esri.core.geometry.VertexDescription.Semantics
                                                                       .M));
                double z = multipoint.getAttributeAsDbl(com.esri.core.geometry.VertexDescription.Semantics
                                                        .Z, 0, 0);
                NUnit.Framework.Assert.IsTrue(z == 1);
                com.esri.core.geometry.SpatialReference spatial_reference = mp.getSpatialReference
                                                                                ();
                NUnit.Framework.Assert.IsTrue(spatial_reference.getID() == 4326);
            }
            return(bAnswer);
        }
		public virtual void TestPolygonMultiPointWithin()
		{
			com.esri.core.geometry.OperatorWithin within = (com.esri.core.geometry.OperatorWithin)(com.esri.core.geometry.OperatorFactoryLocal.GetInstance().GetOperator(com.esri.core.geometry.Operator.Type.Within));
			com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(102100);
			double tolerance = sr.GetTolerance(com.esri.core.geometry.VertexDescription.Semantics.POSITION);
			com.esri.core.geometry.Polygon polygon1 = new com.esri.core.geometry.Polygon();
			com.esri.core.geometry.MultiPoint multipoint2 = new com.esri.core.geometry.MultiPoint();
			polygon1.StartPath(0, 0);
			polygon1.LineTo(0, 10);
			polygon1.LineTo(10, 10);
			polygon1.LineTo(10, 0);
			multipoint2.Add(5, 0);
			multipoint2.Add(5, 10);
			multipoint2.Add(5, 5);
			bool res = within.Execute(polygon1, multipoint2, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
			res = within.Execute(multipoint2, polygon1, sr, null);
			NUnit.Framework.Assert.IsTrue(res);
			multipoint2.Add(5, 11);
			res = within.Execute(multipoint2, polygon1, sr, null);
			NUnit.Framework.Assert.IsTrue(!res);
		}