2025年3月13日 星期四 甲辰(龙)年 月十二 夜 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > .net

用C#动态刷新KML

时间:12-30来源:作者:点击数:21

首先新建一个项目,添加一个timer控件和按钮,当点击按钮时,会动态更新dynamic.kml中的内容,使点的经纬度坐标实时变化。代码如下:

  • private double xx=100;
  • private double yy=30;
  • private void timer1_Tick(object sender, EventArgs e)
  • {
  • xx +=0.03;
  • yy +=0.03;
  • FileStream fs = new FileStream("products.kml", 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("zy's KML");
  • 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/web.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("zy's KML");
  • w.WriteEndElement();
  • // Write Point element
  • w.WriteStartElement("Point");
  • w.WriteStartElement("coordinates");
  • w.WriteString(xx.ToString ()+","+yy.ToString ());
  • w.WriteEndElement();
  • w.WriteEndElement();
  • w.WriteEndElement(); // Placemark
  • w.WriteEndElement();//document
  • w.WriteEndElement(); // kml
  • // Ends the document.
  • w.WriteEndDocument();
  • // close writer
  • w.Close();
  • }

然后新建RealtimeNetlink.kml文件,每次kml刷新的时候,都重新调用dynamic.kml内容,代码如下:

  • <?xml version="1.0" encoding="UTF-8"?>
  • <kml xmlns="http://earth.google.com/kml/2.2">
  • <Document>
  • <name>RealtimeNetlink </name>
  • <visibility>1</visibility>
  • <open>1</open>
  • <NetworkLink>
  • <visibility>1</visibility>
  • <refreshVisibility>1</refreshVisibility>
  • <flyToView>0</flyToView>
  • <LookAt>
  • <longitude>114.12022</longitude>
  • <latitude>22.55841667</latitude>
  • <altitude>2000</altitude>
  • <range>1000</range>
  • <tilt>0</tilt>
  • <heading>0</heading>
  • <altitudeMode>relativeToGround</altitudeMode>
  • </LookAt>
  • <Link>
  • <href>\dynamic.kml</href>
  • <refreshMode>onInterval</refreshMode>
  • <refreshInterval>3</refreshInterval>
  • <viewRefreshMode>onStart</viewRefreshMode>
  • <viewRefreshTime>3</viewRefreshTime>
  • </Link>
  • </NetworkLink>
  • </Document>
  • </kml>

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐