zoukankan      html  css  js  c++  java
  • 用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>
  • 相关阅读:
    利用@media screen实现网页布局的自适应
    心得体悟帖---200315(任何时候,都不要为不值得的人,不值得的事,费时间,费心力)
    心得体悟帖---200315(急啥,复习什么录什么)
    vue项目目录结构详解
    日常英语---200313(npm WARN deprecated vue-cli@2.9.6: This package has been deprecated in favour of @vue/cli)
    vuex是干什么的
    石川es6课程---4、箭头函数
    石川es6课程---3、变量let和常量const
    vue参考---eslink编码规范检查
    vue参考---vue项目结构
  • 原文地址:https://www.cnblogs.com/myparamita/p/1740941.html
Copyright © 2011-2022 走看看