Exemplo n.º 1
0
        public void TestPolygonContainsPoint()
        {
            LineairRing outer = new LineairRing(new GeoCoordinate(0, 0),
                new GeoCoordinate(5, 0), new GeoCoordinate(5, 5), new GeoCoordinate(0, 5), new GeoCoordinate(0, 0));
            LineairRing inner = new LineairRing(new GeoCoordinate(2, 2),
                new GeoCoordinate(4, 2), new GeoCoordinate(4, 4), new GeoCoordinate(2, 4),new GeoCoordinate(2, 2));

            Polygon polygon = new Polygon(outer, new LineairRing[] { inner });

            foreach (GeoCoordinate ringCoordinate in outer.Coordinates)
            {
                Assert.IsTrue(polygon.Contains(ringCoordinate));
            }
            foreach (GeoCoordinate ringCoordinate in inner.Coordinates)
            {
                Assert.IsFalse(polygon.Contains(ringCoordinate));
            }

            GeoCoordinate coordinate = new GeoCoordinate(1, 1);
            Assert.IsTrue(polygon.Contains(coordinate));
            coordinate = new GeoCoordinate(3, 3);
            Assert.IsFalse(polygon.Contains(coordinate));
            coordinate = new GeoCoordinate(-1, 1);
            Assert.IsFalse(polygon.Contains(coordinate));
        }
Exemplo n.º 2
0
        public void TestLineairRingContainsRing()
        {
            LineairRing outer = new LineairRing(new GeoCoordinate(0, 0),
                new GeoCoordinate(5, 0), new GeoCoordinate(5, 5), new GeoCoordinate(0, 5), new GeoCoordinate(0, 0));
            LineairRing inner = new LineairRing(new GeoCoordinate(1, 1),
                new GeoCoordinate(2, 1), new GeoCoordinate(2, 2), new GeoCoordinate(1, 2), new GeoCoordinate(1, 1));

            LineairRing test = new LineairRing(new GeoCoordinate(1, 3),
                new GeoCoordinate(2, 3), new GeoCoordinate(2, 4), new GeoCoordinate(1, 4), new GeoCoordinate(1, 3));
            Polygon polygon = new Polygon(outer, new LineairRing[] { inner });

            Assert.IsTrue(polygon.Contains(test));

            outer = new LineairRing(new GeoCoordinate(0, 0),
                new GeoCoordinate(5, 0), new GeoCoordinate(5, 5), new GeoCoordinate(0, 5), new GeoCoordinate(0, 0));
            inner = new LineairRing(new GeoCoordinate(1, 1),
                new GeoCoordinate(4, 1), new GeoCoordinate(4, 4), new GeoCoordinate(1, 4), new GeoCoordinate(1, 1));
            test = new LineairRing(new GeoCoordinate(2, 2),
                new GeoCoordinate(3, 2), new GeoCoordinate(3, 3), new GeoCoordinate(2, 3), new GeoCoordinate(2, 2));
            polygon = new Polygon(outer, new LineairRing[] { inner });

            Assert.IsFalse(polygon.Contains(test));
        }