public static string AsKML(this SqlGeography geog, string docname, string pname, string description) { Utilities u = new Utilities(); if (u.IsNullOrEmpty(geog)) { return(""); } geDocument doc = u.SqlGeogInstanceToKmlDoc(geog, docname, pname, description); geKML kml = new geKML(doc); return(System.Text.Encoding.ASCII.GetString(kml.ToKML())); }
public void Generate(string path, ProgressBar pBar) { //generates document at path. shows progress using progressbar pBar this.Path = path; kmlDocument.Name = System.IO.Path.GetFileName(path);; kmlDocument.StyleSelectors.Add(defaultStyle); //create a step in the progressbar for each layer int nrLayers = kmlLayers.Count; pBar.Minimum = 0; pBar.Maximum = nrLayers + 1; pBar.Step = 1; //should generate a kml document at path... //first, iterate layers. Each layer makes a folder foreach (LayerProperties lp in kmlLayers) { //create a folder for the layer geFolder folder = new geFolder(); folder.Name = lp.name; folder.Open = true; folder.Description = lp.Layeru.Name; processLayerProperties(lp, folder); kmlDocument.Features.Add(folder); pBar.PerformStep(); } //no more layers, get document :) geKML kml = new geKML(kmlDocument); File.WriteAllBytes(path, kml.ToKML()); pBar.PerformStep(); //ProcessStartInfo psInfNotepad = new ProcessStartInfo("notepad.exe", path); //Process.Start(psInfNotepad); }