Esempio n. 1
0
        public void ParseMultipolygon()
        {
            string       multipolygon = "MULTIPOLYGON (((0 0, 10 0, 10 10, 0 10, 0 0)), ((5 5, 7 5, 7 7, 5 7, 5 5)))";
            MultiPolygon geom         = Geometry.GeomFromText(multipolygon) as MultiPolygon;

            Assert.IsNotNull(geom);
            Assert.AreEqual(2, geom.NumGeometries);
            Assert.AreEqual(new Point(5, 5), geom[0].Centroid);
            Assert.AreEqual(multipolygon, geom.AsText());
            Assert.IsNotNull(Geometry.GeomFromText("MULTIPOLYGON EMPTY"));
            Assert.IsTrue(Geometry.GeomFromText("MULTIPOLYGON EMPTY").IsEmpty());
            geom = Geometry.GeomFromText("MULTIPOLYGON (((0 0, 10 0, 10 10, 0 10, 0 0)), EMPTY, ((5 5, 7 5, 7 7, 5 7, 5 5)))") as MultiPolygon;
            Assert.IsNotNull(geom);
            Assert.IsTrue(geom[1].IsEmpty());
            Assert.AreEqual(new Point(5, 5), geom[2].ExteriorRing.EndPoint);
            Assert.AreEqual(new Point(5, 5), geom[2].ExteriorRing.StartPoint);
            Assert.AreEqual(geom[2].ExteriorRing.StartPoint, geom[2].ExteriorRing.EndPoint);
            Assert.AreEqual(3, geom.NumGeometries);
            Assert.AreEqual("MULTIPOLYGON EMPTY", new MultiPolygon().AsText());
        }