Here I wrote the example of displaying KML files on google maps, and here is one my example of creating KML. I was using sample from
here.
The model:
using System.Xml.Serialization;
namespace CreateKmlFromFiles
{
public class KmlModel
{
[XmlRoot("kml", Namespace = "http://www.opengis.net/kml/2.2")]
public class Kml
{
public Document Document { get; set; }
}
public class Document
{
public string name { get; set; }
public string description { get; set; }
public Style Style { get; set; }
public Placemark Placemark { get; set; }
}
public class Style
{
[XmlAttribute("id")]
public string id { get; set; }
public LineStyle LineStyle { get; set; }
public PolyStyle PolyStyle { get; set; }
}
public class LineStyle
{
public string color { get; set; }
public string width { get; set; }
}
public class PolyStyle
{
public string color { get; set; }
}
public class Placemark
{
public string name { get; set; }
public string description { get; set; }
public string styleUrl { get; set; }
public LineString LineString { get; set; }
}
public class LineString
{
public string extrude { get; set; }
public string tessellate { get; set; }
public string altitudeMode { get; set; }
public string coordinates { get; set; }
}
}
}
The code:
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;
namespace CreateKmlFromFiles
{
class Program
{
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
sb.Append("7.0971881, 50.7359953, 2357");
KmlModel.Kml kmlModel = new KmlModel.Kml
{
Document = new KmlModel.Document
{
name = "Paths"
, description = "test"
, Style = new KmlModel.Style
{
id = "red"
, LineStyle = new KmlModel.LineStyle
{
color = "7f0000ff"
, width = "4"
}
, PolyStyle = new KmlModel.PolyStyle
{
color = "7f0000ff"
}
}
, Placemark = new KmlModel.Placemark
{
name = "Absolute Extruded"
, description = "Transparent green wall with yellow outlines"
, styleUrl = "#yellowLineGreenPoly"
, LineString = new KmlModel.LineString
{
extrude = "1"
, tessellate = "1"
, altitudeMode = "absolute"
, coordinates = sb.ToString()
}
}
}
};
TextWriter txtWriter = new StreamWriter
(
Path.ChangeExtension
(
System.Reflection.Assembly.GetEntryAssembly().Location
, ".kml"
));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "http://www.opengis.net/kml/2.2");
XmlSerializer xmlSerializer = new XmlSerializer(typeof(KmlModel.Kml));
xmlSerializer.Serialize(txtWriter, kmlModel, ns);
txtWriter.Close();
}
}
}