我有一个带有许多简单点标记的kml文件,每个标记都覆盖美国。我试图找到一种方法来控制他们的标签显示,以便视图不会在更高的海拔高度混乱。我已经看到提到区域的使用,但似乎必须在每个地标上应用。我知道必须有一些东西可用于此,因为GE在默认层上做这件事,即人口稠密的地方。此外,当我缩放到标签消失而没有任何输入我的kml时,似乎有一些默认工作。
任何评论都表示赞赏!!
答案 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;它会暂时隐藏所有标签。
亲切的问候,
托马斯