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)); }
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)); }