public void Inside_PolyWithHole() { var ptInHole = Turf.Point(new double[] { -86.69208526611328, 36.20373274711739 }); var ptInPoly = Turf.Point(new double[] { -86.72229766845702, 36.20258997094334 }); var ptOutsidePoly = Turf.Point(new double[] { -86.75079345703125, 36.18527313913089 }); var polyHole = JsonConvert.DeserializeObject <Feature>(Tools.GetResource("poly-with-hole.geojson")); Assert.False(Turf.Inside(ptInHole, polyHole)); Assert.True(Turf.Inside(ptInPoly, polyHole)); Assert.False(Turf.Inside(ptOutsidePoly, polyHole)); }
public void Circle() { var center = Turf.Point(new double[] { -75.343, 39.984 }); double radius = 5; int steps = 10; var polygon = Turf.Circle(center, radius, steps, "kilometers"); var point1 = Turf.Destination(center, radius - 1, 45, "kilometers"); var point2 = Turf.Destination(center, radius + 1, 135, "kilometers"); Assert.AreEqual(Turf.Inside(point1, polygon), true, "point is inside the polygon"); Assert.AreEqual(Turf.Inside(point2, polygon), false, "point is outside the polygon"); }
public void Inside_FeatureCollection() { // test for a simple polygon var poly = new Feature(new Polygon(new List <LineString>() { new LineString(new List <Position>() { new GeographicPosition(0, 0), new GeographicPosition(100, 0), new GeographicPosition(100, 100), new GeographicPosition(0, 100), new GeographicPosition(0, 0) }) })); var ptIn = Turf.Point(new double[] { 50, 50 }); var ptOut = Turf.Point(new double[] { 140, 150 }); Assert.True(Turf.Inside(ptIn, poly), "point inside simple polygon"); Assert.False(Turf.Inside(ptOut, poly), "point outside simple polygon"); // test for a concave polygon var concavePoly = new Feature(new Polygon(new List <LineString>() { new LineString(new List <Position>() { new GeographicPosition(0, 0), new GeographicPosition(50, 50), new GeographicPosition(100, 50), new GeographicPosition(100, 100), new GeographicPosition(0, 100), new GeographicPosition(0, 0) }) })); var ptConcaveIn = Turf.Point(new double[] { 75, 75 }); var ptConcaveOut = Turf.Point(new double[] { 25, 50 }); Assert.True(Turf.Inside(ptConcaveIn, concavePoly), "point inside concave polygon"); Assert.False(Turf.Inside(ptConcaveOut, concavePoly), "point outside concave polygon"); }