MapGuide API Reference
|
An MgMultiPolygon is a two-dimensional aggregate geometry whose elements are MgPolygon geometries. More...
Public Member Functions | |
virtual MgGeometricEntity * | Copy () |
virtual MgCoordinateIterator * | GetCoordinates () |
Returns an iterator over the coordinates included in this geometric entity. | |
virtual INT32 | GetCount () |
virtual INT32 | GetDimension () |
virtual INT32 | GetGeometryType () |
virtual MgPolygon * | GetPolygon (INT32 index) |
virtual bool | IsClosed () |
virtual bool | IsEmpty () |
virtual MgGeometricEntity * | Transform (MgTransform *transform) |
Returns a transformed copy of this geometric entity. |
An MgMultiPolygon is a two-dimensional aggregate geometry whose elements are MgPolygon geometries.
// A helper class additional to those created in the // MgPolygon example code is needed. $polygonCollection = new MgPolygonCollection(); // After each MgPolygon geometry is constructed, // it is added to an MgPolygonCollection. $index = $polygonCollection->Add($polygon); echo "A polygon is added to a polygon collection at index: $index\n"; // construct the MgMultiPolygon geometry $multiPolygon = $geometryFactory-> CreateMultiPolygon($polygonCollection); // print out the Agf Text string for the geometry $multiPolygonAgfText = $wktReaderWriter->Write($multiPolygon); echo "AGF Text representation of MultiPolygon: $multiPolygonAgfText\n";
using OSGeo.MapGuide; private MgWktReaderWriter wktReaderWriter; private MgGeometryFactory geometryFactory; private MgMultiPolygon mpnPn0010110100Pn0010110100; // this array contains the data for 2 polygons whose values are identical private double[][][,] mpnPn0010110100Pn0010110100Data; // the following array is used for the exterior ring of a polygon // the points are in counterclockwise order private double[,] da0010110100 = { { 0, 0 }, { 1, 0 }, { 1, 1 }, { 0, 1 }, { 0, 0 } }; private String geometryAgfText; public MgMultiPolygon CreateAMultiPolygonXY(double[][][,] polygonData) { MgPolygonCollection polygons = new MgPolygonCollection(); ; for (int i = 0; i < polygonData.GetLength(0); i++) { polygons.Add(CreateAPolygonXY(polygonData[i])); } return geometryFactory.CreateMultiPolygon(polygons); } geometryFactory = new MgGeometryFactory(); pnEr0010110100Data = new double[1][,]; pnEr0010110100Data[0] = da0010110100; mpnPn0010110100Pn0010110100Data = new double[2][][,]; mpnPn0010110100Pn0010110100Data[0] = pnEr0010110100Data; mpnPn0010110100Pn0010110100Data[1] = pnEr0010110100Data; mpnPn0010110100Pn0010110100 = CreateAMultiPolygonXY(mpnPn0010110100Pn0010110100Data); // print out the Agf Text string for the geometry wktReaderWriter = new MgWktReaderWriter(); geometryAgfText = wktReaderWriter.Write(mpnPn0010110100Pn0010110100); // geometryAgfText now contains: // "MULTIPOLYGON XY ((( 0 0, 1 0, 1 1, 0 1, 0 0 )), (( 0 0, 1 0, 1 1, 0 1, 0 0 )))"