Example #1
0
        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));
        }
Example #2
0
        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");
        }
Example #3
0
        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");
        }