2017-02-20 33 views
0

我已将visibility设置为0,但完全没有运气,仍然在我加载Google地球时加载所有数据。如何取消选中所有文件夹和内部项目,以便用户可以选择以后需要的内容。我是通过C#创建KML和我张贴大的KML文件的一小部分,我正在转换到KMZ。什么是错在下面的kml在谷歌地球片断如何取消选中KML文件中的文件夹

<?xml version="1.0" encoding="utf-8"?> 

<kml:kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:json="http://www.w3.org/2005/Json"> 

    <kml:Folder> 

    <kml:visibility>0</kml:visibility> 

    <kml:name>Test</kml:name> 

    <kml:open>1</kml:open> 

    <kml:Folder> 

     <kml:visibility>0</kml:visibility> 

     <kml:name>2G</kml:name> 

     <kml:open>1</kml:open> 

     <kml:Folder> 

     <kml:visibility>0</kml:visibility> 

     <kml:name>Icro</kml:name> 

     <kml:Folder> 

      <kml:visibility>0</kml:visibility> 

      <kml:name>Working</kml:name> 
     </kml:Folder> 
     </kml:Folder> 
    </kml:Folder> 
    </kml:Folder> 

    <kml:Folder> 

    <kml:visibility>0</kml:visibility> 

    <kml:name>3G</kml:name> 

    <kml:open>1</kml:open> 

    <kml:Folder> 

     <kml:visibility>0</kml:visibility> 

     <kml:name>Testro</kml:name> 

     <kml:Folder> 

     <kml:visibility>0</kml:visibility> 

     <kml:name>Working</kml:name> 

     <Document xmlns="http://www.opengis.net/kml/2.2"> 

      <name>POINTS</name> 
     </Document> 
     </kml:Folder> 
    </kml:Folder> 
    </kml:Folder> 
</kml:kml> 

回答

1

有一个“功能”相矛盾通过父文件夹的可见性可以看到KML 2.2规范如何描述数据。

OGC KML 2.2标准规定“为了使特征可见,其所有祖先的标签也应设置为1或真”。这意味着在父文件夹中可见性= 0应该使该文件夹中包含的所有子地标不可见。

但是,即使未明确定义可见性(默认可见性= 1),并且这违反了上述标准,Google Earth也会实现可见性,使得子元素的可见性会覆盖父文件夹的可见性。这在2009年被报告为bug并且被描述为here。谷歌回应了这个问题如下:

“能见度一直覆盖的子元素水平, 改变,这将打破现有的代码”

这意味着所有的KML地标是想要在启动时不显示必须显式地具有可见性0,而不是在文件夹/文档级别处仅设置一次。

相关问题