MapGuide API Reference
 All Classes Functions Variables Enumerations Enumerator Friends
MgMultiLineString Class Reference

An MgMultiLineString is a one-dimensional aggregate geometry whose elements are MgLineString geometries. More...

+ Inheritance diagram for MgMultiLineString:

List of all members.

Public Member Functions

virtual MgGeometricEntityCopy ()
virtual INT32 GetCount ()
virtual INT32 GetDimension ()
 
virtual INT32 GetGeometryType ()
virtual MgLineStringGetLineString (INT32 index)
 
virtual bool IsClosed ()
virtual bool IsEmpty ()
 
virtual MgGeometricEntityTransform (MgTransform *transform)

Detailed Description

An MgMultiLineString is a one-dimensional aggregate geometry whose elements are MgLineString geometries.

Remarks:
The line strings are not connected or ordered. An instance of this class is constructed by calling a non-static MgGeometryFactory::CreateMultiLineString() method and, once constructed, is immutable.
Example (PHP)
The following code shows the construction of an MgMultiLineString geometry. Review the MgLineString example code.

 // A helper class additional to those created in the
 // MgLineString example code is needed.
 $lineStringCollection = new MgLineStringCollection();

 // After each MgLineString geometry is constructed,
 // it is added to an MgLineStringCollection.
 $index = $lineStringCollection->Add($lineString);
 echo "A line string is added to a line string collection at index: $index\n";

 // construct the MgMultiLineString geometry
 $multiLineString = $geometryFactory->CreateMultiLineString($lineStringCollection);

 // print out the Agf Text string for the geometry
 $multiLineStringAgfText = $wktReaderWriter->Write($multiLineString);
 echo "AGF Text representation of MultiLineString: $multiLineStringAgfText\n";
Example (C#)
The CreateAMultiLineStringXY method calls the CreateALineStringXY method. The code for the CreateALineStringXY method is in the MgLineString example code.

 using OSGeo.MapGuide;

 private MgWktReaderWriter wktReaderWriter;
 private MgGeometryFactory geometryFactory;
 private MgMultiLineString mlsLs0121Ls1121;
 // the data for 1 linestring
 private double[,] da0121 = { { 0, 1 }, { 2, 1 } };
 // the data for another linestring
 private double[,] da1121 = { { 1, 1 }, { 2, 1 } };
 // the data for 2 linestrings
 private double[][,] mlsLs0121Ls1121Data;
 private String geometryAgfText;

 public MgMultiLineString CreateAMultiLineStringXY(double[][,] lineStrings)
 {
     MgLineStringCollection lines = new MgLineStringCollection();
     for (int i = 0; i < lineStrings.GetLength(0); i++)
     {
         lines.Add(CreateALineStringXY(lineStrings[i]));
     }
     return geometryFactory.CreateMultiLineString(lines);
 }

 geometryFactory = new MgGeometryFactory();
 mlsLs0121Ls1121Data = new double[2][,];
 mlsLs0121Ls1121Data[0] = da0121;
 mlsLs0121Ls1121Data[1] = da1121;
 mlsLs0121Ls1121 = CreateAMultiLineStringXY(mlsLs0121Ls1121Data);

 // print out the Agf Text string for the geometry
 wktReaderWriter = new MgWktReaderWriter();
 geometryAgfText = wktReaderWriter.Write(mlsLs0121Ls1121);
 // geometryAgfText now contains:
 // "MULTILINESTRING XY ((0 1, 2 1), (1 1, 2 1))"