Beispiel #1
0
        public void IntersectTriangles()
        {
            ICoordinate[] v1 = new ICoordinate[7];
            v1[0] = new Coordinate(0,0);
            v1[1] = new Coordinate(5,10);
            v1[2] = new Coordinate(10,0);

            v1[3] = new Coordinate(8, 0);
            v1[4] = new Coordinate(5, 3);
            v1[5] = new Coordinate(4, 0);

            v1[6] = new Coordinate(0,0);


            IGeometry pol1 = new Polygon(new LinearRing(v1));

            ICoordinate[] v2 = new ICoordinate[5];
            v2[0] = new Coordinate(0, 0);
            v2[1] = new Coordinate(10, 0);
            v2[2] = new Coordinate(10, 1);
            v2[3] = new Coordinate(0, 1);
            v2[4] = new Coordinate(0, 0);

            IGeometry pol2 = new Polygon(new LinearRing(v2));

/*
            IGeometry g = pol1.Difference(pol2);
            Assert.AreEqual(6, g.Coordinates.Length);

            IGeometry g1 = pol1.Union(pol2);
            Assert.AreEqual(7, g1.Coordinates.Length);

*/
            Map map = new Map();

            IGeometry gIntersection = pol1.Intersection(pol2);
            map.Layers.Add(new VectorLayer("g1", new DataTableFeatureProvider(new [] { gIntersection })));


/*
            map.Layers.Add(new VectorLayer("g", new DataTableFeatureProvider(new IGeometry[] { pol1 }) ));
            map.Layers.Add(new VectorLayer("g1", new DataTableFeatureProvider(new IGeometry[] { pol2 })));
*/

            MapTestHelper.Show(map);
        }
Beispiel #2
0
        public void IntersectPolygonWithLine()
        {
            ICoordinate[] coordinates = new ICoordinate[5];
            coordinates[0] = new Coordinate(0, 0);
            coordinates[1] = new Coordinate(10, 0);
            coordinates[2] = new Coordinate(10, 10);
            coordinates[3] = new Coordinate(0, 10);
            coordinates[4] = new Coordinate(0, 0);

            IGeometry pol2 = new Polygon(new LinearRing(coordinates));
            var line = new LineString(new[] { new Coordinate(5,5), new Coordinate(6,20),new Coordinate(7,5) });

            var result = pol2.Intersection(line);
        }