我有一个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。选择"样式,颜色"选项卡,它应该显示如下内容:
此文件夹的后代不共享相同的样式。点击如果要强制所有后代共享同一款式
点击"分享样式"下面的按钮,它会暂时隐藏所有的标签。
亲切的问候,托马斯