当前位置:编程学习 > C#/ASP.NET >>

GoogleEarth之Kml文件的读取修改求教

如下某一kml文件事例,想实现对每一个polygon下的coordinates的高程(第三项)修改,找了好多代码都是讲如何创建kml文件,而如何修改一确定kml文件的方法却很少,修改很容易吗,可我怎么一点思路都没有?可能有很多的polygon,根据某一源数据以Placemark的name值为主键动态地修改polygon的高程值。就是说能否有一个类,在初始化时读取此kml文件并将各相关节点读入缓存,然后通过外部赋值,然后执行保持修改功能实现修改呢。怎么设计这个类呢?


<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
  <name><![CDATA[mesh_Project]]></name>
  <open>1</open>
  <description><![CDATA[Exported from mesh_Project on 2010-7-5]]></description>
  <Style id="FEATURES">
    <LineStyle>
      <color>FF6E6E6E</color>
      <width>.4</width>
    </LineStyle>
    <PolyStyle>
      <outline>1</outline>
      <fill>1</fill>
      <color>FFF9FCD2</color>
    </PolyStyle>
  </Style>
  <Style id="FEATURES_LABELS">
    <IconStyle>
      <color>00000000</color>
      <Icon>
        <href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png</href>
      </Icon>
    </IconStyle>
    <LabelStyle>
      <color>FFFFFFFF</color>
    </LabelStyle>
  </Style>
  <Folder>
    <name>Features</name>
    <open>0</open>
       <Placemark>
         <name><![CDATA[156]]></name>
         <description><![CDATA[]]></description>
         <styleUrl>#FEATURES</styleUrl>
         <Polygon>
           <extrude>0</extrude>
           <altitudeMode>absolute</altitudeMode>
           <outerBoundaryIs>
           <LinearRing>
             <coordinates>
               108.322946652984,22.7932520244969,500
               108.321790347797,22.7935118568474,500
               108.322041588142,22.7920910160841,400
               108.322946652984,22.7932520244969,300
             </coordinates>
           </LinearRing>
           </outerBoundaryIs>
         </Polygon>
       </Placemark>
       <Placemark>
         <name><![CDATA[162]]></name>
         <description><![CDATA[]]></description>
         <styleUrl>#FEATURES</styleUrl>
         <Polygon>
           <extrude>0</extrude>
           <altitudeMode>clampedToGround</altitudeMode>
           <outerBoundaryIs>
           <LinearRing>
             <coordinates>
               108.317514795162,22.7946649052627,0
               108.31748697833,22.7936637364073,0
               108.318486108004,22.7943822403359,0
               108.317514795162,22.7946649052627,0
             </coordinates>
           </LinearRing>
           </outerBoundaryIs>
         </Polygon>
       </Placemark>
  </Folder>
</Document>
</kml>

--------------------编程问答-------------------- 代码太吓人了,没人敢来。。。

帮你顶哦~ --------------------编程问答-------------------- 呵呵,谢谢楼上的,再顶顶看 --------------------编程问答-------------------- 楼主问题解决没,我也正在为这个问题寻求解决方法呢 --------------------编程问答-------------------- 帮顶 关注 --------------------编程问答-------------------- 解决没?
专著中 --------------------编程问答-------------------- 楼主问题解决了吗?我现在也遇到了如何去动态的修改kml中的经纬度以实现动态的定位车辆位置啊 --------------------编程问答-------------------- 也是这个问题啦 怎么把经纬度 动态添加进KML文件中去呢 QQ506886574 --------------------编程问答-------------------- 这个文件当成XML操作行不? --------------------编程问答-------------------- 差不多一样的问题,我现在不知道是一个标签的节点顺序如何读取。蛋疼……
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,