如何创建不允许展开文件夹的Google地球KML网络链接

时间:2012-09-30 19:48:19

标签: kml google-earth

我创建了一个网络链接,该链接引用了另一个KML文件,其中包含要加载到Google地球中的实际数据。我的问题是,如果Google地球中“地方信息”标签下的KML文件文件夹设置为“允许展开此文件夹”,则引用的KML文件中的点数会非常大,以至于会崩溃Google地球(右键单击KML,属性)。默认情况下,选中此复选框。我希望这样做,以便对于每个网络链接我默认创建该文件夹是不可扩展的。

我在Google地球KML教程中查找了checkHideChildren,但该行没有提供任何结果,我不完全确定我应该将该行放在网络链接KML中。

以下是示例代码,如果您可以指向我放置此行代码的方向,或者采用完全不同的方法,我们将不胜感激!

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>
CPU
</name>
<refreshVisibility>1</refreshVisibility>
<Link id="GPS_Plotter Updater">
<href>CPU.kml</href>
<Style id="style1"><ListStyle>
<listItemType>checkHideChildren</listItemType> <-- this is the line that should be hiding the children points of the KML!
</ListStyle>
</Style>
<styleUrl>#style1</styleUrl>
<refreshMode>onInterval</refreshMode>
<refreshInterval>1</refreshInterval>
<viewRefreshMode>onRegion</viewRefreshMode>
<viewRefreshTime>1</viewRefreshTime>
</Link>
</NetworkLink>
</kml>

2 个答案:

答案 0 :(得分:0)

尝试将Style元素放在NetworkLink中,而不是Link元素中。 Link没有采用样式选择器,但NetworkLink可以。如果这不起作用,请尝试使用radioFolder的listItemType。

答案 1 :(得分:0)

除了Mano Marks的建议,您还需要将 styleUrl 元素移动到 NetworkLink ,否则它将不适用。请注意,在您的示例中,您有 viewRefreshMode = onRegion ,但没有为其定义区域。

以下是禁止NetworkLink内容的完整工作示例。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <NetworkLink>
        <name>CPU</name>
        <styleUrl>#style1</styleUrl>
        <Style id="style1">
                <ListStyle>
                    <listItemType>checkHideChildren</listItemType>
                </ListStyle>
        </Style>
        <Region>
                <!-- define region here -->
        </Region>
        <refreshVisibility>1</refreshVisibility>        
        <Link id="GPS_Plotter_Updater">
            <href>CPU.kml</href>
            <refreshMode>onInterval</refreshMode>
            <refreshInterval>1</refreshInterval>
            <viewRefreshMode>onRegion</viewRefreshMode>
            <viewRefreshTime>1</viewRefreshTime>
        </Link> 
    </NetworkLink>
</kml>

您可以通过验证KML来捕获这样的错误。尝试使用Galdos KML Validator