控制位置标记上的标签可见性



我有一个kml文件,其中包含许多简单的点位置标记,每个位置标记都有一个名称,涵盖美国。我试图找到一种方法来控制他们的标签显示,使视图不杂乱在较高的海拔。我已经看到提到区域的使用,但似乎这将不得不应用于每个位置标记。我知道一定有什么可用的,因为通用电气正在默认图层上做这件事,即人口密集的地方。此外,当我将标签放大到足够大时,似乎有一些默认值在起作用,标签在kml上没有任何输入就消失了。

欢迎任何评论!!

要在KML中控制标签的显示,您可以使用前面提到的Regions和/或使用带有普通突出显示的LabelStyle的StyleMap。

如果你捕获到Google Earth的HTTP流量,你会注意到边界和标签默认层(以及其他)被实现为使用区域和嵌套网络链接的KML文件。

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

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

StyleMap

您可能想要创建一个StyleMap,其中普通样式具有一个刻度为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>

有同样的问题,我找不到任何快速的解决方案,因为我的.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 Earth中并右键单击它以选择Properties。选择"样式,颜色"选项卡,它应该显示如下内容:

此文件夹的后代不共享相同的样式。点击如果要强制所有后代共享同一款式

点击"分享样式"下面的按钮,它会暂时隐藏所有的标签。

亲切的问候,托马斯

最新更新