/// <summary>
 /// Initializes a new KML <c>&lt;Document&gt;</c> element containing the specified <paramref name="coordinates"/>.
 /// </summary>
 /// <param name="coordinates">An array of coordinates that make up the linear ring.</param>
 public KmlLinearRing(double[][] coordinates)
 {
     Coordinates = new KmlLinearRingCoordinates(coordinates);
 }
 /// <summary>
 /// Initializes a new KML <c>&lt;Document&gt;</c> element containing the specified <paramref name="coordinates"/>.
 /// </summary>
 /// <param name="coordinates">An array of coordinates that make up the linear ring.</param>
 public KmlLinearRing(IEnumerable <KmlPointCoordinates> coordinates)
 {
     Coordinates = new KmlLinearRingCoordinates(coordinates);
 }
 /// <summary>
 /// Initializes a new empty KML <c>&lt;Document&gt;</c> element.
 /// </summary>
 public KmlLinearRing()
 {
     Coordinates = new KmlLinearRingCoordinates();
 }
 /// <summary>
 /// Initializes a new KML <c>&lt;Document&gt;</c> element containing the specified <paramref name="coordinates"/>.
 /// </summary>
 /// <param name="coordinates">An array of coordinates that make up the linear ring.</param>
 public KmlLinearRing(params KmlPointCoordinates[] coordinates)
 {
     Coordinates = new KmlLinearRingCoordinates(coordinates);
 }
 /// <summary>
 /// Initializes a new KML <c>&lt;Document&gt;</c> element.
 /// </summary>
 /// <param name="xml">The XML element the document should be based on.</param>
 /// <param name="namespaces">The XML namespace.</param>
 protected KmlLinearRing(XElement xml, XmlNamespaceManager namespaces)
 {
     Extrude     = xml.GetElementValueAsBoolean("kml:extrude", namespaces);
     Tesselate   = xml.GetElementValueAsBoolean("kml:tesselate", namespaces);
     Coordinates = xml.GetElement("kml:coordinates", namespaces, KmlLinearRingCoordinates.Parse) ?? new KmlLinearRingCoordinates();
 }