• 用C#动态刷新KML


     首先新建一个项目,添加一个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>
  • 相关阅读:
    Activity 与ListActivity的区别
    自定义标题栏
    解决小程序无法触发SESSION问题
    js数组与字符串经常用的几种简单的方法
    python程序与进制的执行过程
    常问的 web前端 问题
    如何判断页面滑到了屏幕最底部
    http请求状态保持的四种方法
    vue知识点归纳与总结(笔记)
    Nginx常用命令及使用场景
  • 原文地址:https://www.cnblogs.com/myparamita/p/1740941.html
Copyright © 2020-2023  润新知