将坐标集合datatable 存为googleearth可打开的kml文件
2012-05-24 16:21
429 查看
将坐标集合datatable 存为googleearth可打开的kml文件
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "Google地图轨迹(*.kml)|所有文件(*.*)";
saveFile.ShowDialog();
if (saveFile.FileName.Trim() == "") return;
string filename = saveFile.FileName + ".kml";
// Create the file and writer.
FileStream fs = new FileStream(filename, FileMode.Create);
XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);
// Start the document.
w.WriteStartDocument();
w.WriteStartElement("kml", "http://earth.google.com/kml/2.1");
w.WriteStartElement("Document");
w.WriteStartElement("name");
w.WriteString(filename);
w.WriteEndElement();
w.WriteStartElement("open");
w.WriteString("1");
w.WriteEndElement();
//style
w.WriteStartElement("Style");
w.WriteAttributeString("id", "normalPlacemark");
w.WriteStartElement("IconStyle");
w.WriteStartElement("Icon");
w.WriteStartElement("href");
w.WriteString("F:/img/aws0.gif");
w.WriteEndElement();//style
w.WriteEndElement();//iconStyle
w.WriteEndElement();//icon
w.WriteEndElement();//href
//stylemap
w.WriteStartElement("StyleMap");
w.WriteAttributeString("id", "exampleStyleMap");
w.WriteStartElement("Pair");
w.WriteStartElement("key");
w.WriteString("normal");
w.WriteEndElement();
w.WriteStartElement("styleUrl");
w.WriteString("#normalPlacemark");
w.WriteEndElement();//styleUrl
w.WriteEndElement();//pair
w.WriteEndElement();//StyleMap
w.WriteStartElement("Placemark");
w.WriteStartElement("Name");
w.WriteString(filename);
w.WriteEndElement();
//write styleurl
w.WriteStartElement("styleUrl");
w.WriteString("#exampleStyleMap");
w.WriteEndElement();
// Write Point element
w.WriteStartElement("LineString");
w.WriteStartElement("coordinates");
string points = "";
for (int i = 0; i < _dtHistoryPoints.Rows.Count; i++)
{
string lng = _dtHistoryPoints.Rows[i]["Longitude"].ToString();
string lat = _dtHistoryPoints.Rows[i]["Latitude"].ToString();
points += lng + "," + lat + ",0 ";
}
w.WriteString(points);
w.WriteEndElement();
w.WriteEndElement();
w.WriteEndElement(); // Placemark
w.WriteEndElement();//document
w.WriteEndElement(); // kml
// Ends the document.
w.WriteEndDocument();
// close writer
w.Close();
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "Google地图轨迹(*.kml)|所有文件(*.*)";
saveFile.ShowDialog();
if (saveFile.FileName.Trim() == "") return;
string filename = saveFile.FileName + ".kml";
// Create the file and writer.
FileStream fs = new FileStream(filename, FileMode.Create);
XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);
// Start the document.
w.WriteStartDocument();
w.WriteStartElement("kml", "http://earth.google.com/kml/2.1");
w.WriteStartElement("Document");
w.WriteStartElement("name");
w.WriteString(filename);
w.WriteEndElement();
w.WriteStartElement("open");
w.WriteString("1");
w.WriteEndElement();
//style
w.WriteStartElement("Style");
w.WriteAttributeString("id", "normalPlacemark");
w.WriteStartElement("IconStyle");
w.WriteStartElement("Icon");
w.WriteStartElement("href");
w.WriteString("F:/img/aws0.gif");
w.WriteEndElement();//style
w.WriteEndElement();//iconStyle
w.WriteEndElement();//icon
w.WriteEndElement();//href
//stylemap
w.WriteStartElement("StyleMap");
w.WriteAttributeString("id", "exampleStyleMap");
w.WriteStartElement("Pair");
w.WriteStartElement("key");
w.WriteString("normal");
w.WriteEndElement();
w.WriteStartElement("styleUrl");
w.WriteString("#normalPlacemark");
w.WriteEndElement();//styleUrl
w.WriteEndElement();//pair
w.WriteEndElement();//StyleMap
w.WriteStartElement("Placemark");
w.WriteStartElement("Name");
w.WriteString(filename);
w.WriteEndElement();
//write styleurl
w.WriteStartElement("styleUrl");
w.WriteString("#exampleStyleMap");
w.WriteEndElement();
// Write Point element
w.WriteStartElement("LineString");
w.WriteStartElement("coordinates");
string points = "";
for (int i = 0; i < _dtHistoryPoints.Rows.Count; i++)
{
string lng = _dtHistoryPoints.Rows[i]["Longitude"].ToString();
string lat = _dtHistoryPoints.Rows[i]["Latitude"].ToString();
points += lng + "," + lat + ",0 ";
}
w.WriteString(points);
w.WriteEndElement();
w.WriteEndElement();
w.WriteEndElement(); // Placemark
w.WriteEndElement();//document
w.WriteEndElement(); // kml
// Ends the document.
w.WriteEndDocument();
// close writer
w.Close();
相关文章推荐
- 用c#打开.DBF文件 读取内容到DataTable或DataSet中
- 用c#打开.DBF文件 读取内容到DataTable或DataSet中
- 解析KML文件并提取coordinates中的经纬度坐标信息
- 解析KML文件 , 获取Coordinates标签中的经纬度坐标值
- python的集合,文件打开模式,
- 利用Excel VBA将坐标点直接转换为谷歌地球的kml格式文件(ExcelToKml)
- vs2008打开aspx文件时设计界面死机情况的解决
- vc6.0不能打开文件-vc6.0 windows7下不能打开文件不能添加工程文件-FileTool.exe下载地址
- asp.net输出docx文档出现【文件已损坏 无法打开】问题的解决方案
- VS2013 编译程序时提示 无法查找或打开 PDB 文件
- xcode打开工程之后 文件目录没有显示的解决办法
- Python脚本:一键打开上次Maya崩溃后所保存的临时文件
- Qt编程调用外部程序打开文件
- Eclipse打开当前工程文件所在文件夹
- C# System.IO.FileStream 读取被其他程序打开的文件提示“文件正由另一进程使用,因此该进程无法访问该文件。”
- 【学习ffmpeg】打开视频文件,帧分析,并bmp保存关键帧
- VI打开和编辑多个文件的命令
- u盘为空,打开属性可以看到有文件,但是打开目录却看不到文件,即时是显示了隐藏文件;文件属性中的隐藏选项为灰色的
- java使用dos命令打开路径中含有空格的文件
- 【技术贴】Eclipse 右键打开当前文件所在文件夹