控制地标上的标签可见性

时间:2012-12-31 00:38:21

标签: kml google-earth

我有一个带有许多简单点标记的kml文件,每个标记都覆盖美国。我试图找到一种方法来控制他们的标签显示,以便视图不会在更高的海拔高度混乱。我已经看到提到区域的使用,但似乎必须在每个地标上应用。我知道必须有一些东西可用于此,因为GE在默认层上做这件事,即人口稠密的地方。此外,当我缩放到标签消失而没有任何输入我的kml时,似乎有一些默认工作。

任何评论都表示赞赏!!

2 个答案:

答案 0 :(得分:3)

要控制KML中标签的显示,您可以使用您提到的区域和/或使用普通且突出显示的LabelStyle的StyleMap。

如果您捕获到Google地球的HTTP流量,您会注意到边框和标签默认图层(以及其他图层)使用区域和嵌套的NetworkLink实现为KML文件。

<强>地区

如果您不想在每个地标上创建Region,那么您可以将地标分组到文件夹中,并在文件夹上设置一个区域来控制地标可见的时间。正确创建区域需要一些试验和错误。您甚至可能不需要指定最小/最大高度 - 区域尺寸的适当 minLodPixels 值可能就足够了。

有关地区的教程可以在这里找到 https://developers.google.com/kml/documentation/regions

<强> StyleMap设定

您可能想要创建一个StyleMap,其中普通Style具有标度为0的LabelStyle以完全抑制标签,或者设置较小的值以简单地减少杂乱。

    <Style id="sn_style">
        <LabelStyle>
            <scale>0</scale>
        </LabelStyle>
    </Style>

    <Style id="sh_style">
        <LabelStyle>
            <scale>1.1</scale>
        </LabelStyle>
    </Style>

   <StyleMap id="msn_style">
        <Pair>
            <key>normal</key>
            <styleUrl>#sn_style</styleUrl>
        </Pair>
        <Pair>
            <key>highlight</key>
            <styleUrl>#sh_style</styleUrl>
        </Pair>
    </StyleMap>

答案 1 :(得分:2)

有同样的问题我无法找到任何快速的解决方案,因为我的.kml包含了近10k的POI。所以我所做的是添加FAQ提供的代码,所以我的标题看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document><Folder><name>name</name><Style id="hideLabel"><LabelStyle><scale>0</scale></LabelStyle></Style>

我将第一个地标改为:

Placemark>
    <name>name</name>
    <styleUrl>#hideLabel</styleUrl>
    <ExtendedData><SchemaData schemaUrl="#name">
        <SimpleData name="Name">name</SimpleData>
        <SimpleData name="Latitude">xxxx</SimpleData>
        <SimpleData name="Longitude">yyyy</SimpleData>
    </SchemaData></ExtendedData>
      <Point><coordinates>xxxx,yyyy</coordinates></Point>
  </Placemark>

之后我将.kml加载到Google地球中并右键单击它以选择“属性”。选择&#34;样式,颜色&#34;选项卡,它应说明以下内容:

  

此文件夹的后代不共享相同的样式。点击   如果您想强制所有后代分享,请按下面的按钮   相同的风格

点击下面的按钮&#34;分享风格&#34;它会暂时隐藏所有标签。

亲切的问候,

托马斯