示例#1
0
        public void AddRoute(airport[] rgap, string szName)
        {
            if (rgap == null)
            {
                return;
            }

            kml.WriteStartElement("Placemark");
            try
            {
                // We've had instances where szName has invalid cahracters, so ignore any errors that arise
                kml.WriteElementString("name", szName);
            }
            catch (Exception ex) when(ex is ArgumentException || ex is InvalidOperationException)
            {
            }
            kml.WriteElementString("styleUrl", "#redPoly");
            kml.WriteStartElement("LineString");

            kml.WriteElementString("extrude", "0"); // don't connect to the ground
            kml.WriteElementString("altitudeMode", "clampToGround");

            StringBuilder sbCoords = new StringBuilder();

            // Altitude, in meters
            foreach (airport ap in rgap)
            {
                sbCoords.AppendFormat(CultureInfo.InvariantCulture, "{0},{1}\r\n", LatLong.InvariantString(ap.LatLong.Longitude), LatLong.InvariantString(ap.LatLong.Latitude));
            }

            kml.WriteElementString("coordinates", sbCoords.ToString());

            kml.WriteEndElement(); // LineString
            kml.WriteEndElement(); // <Placemark>
        }