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