如何为地标指定两种样式

时间:2014-03-23 15:12:58

标签: kml kmz

我是KML的新手,这应该很简单,但我无法弄清楚。

在我的KML中,我定义了几种样式,并且可以使用styleUrl-tag轻松地将它们分配到特定的地标。我的风格仅在背景颜色方面有所不同,但它们也包含一个相当复杂的“气球风格”#34;这对所有人来说都是一样的。 现在我不想将这种相同的气球复制到我拥有的每种风格中,并增加我的KML的大小。

我需要的是为地标分配两种样式,就像我在CSS中所做的那样:

<styleUrl>#greenArea #myBalloonStyle</styleUrl>

<styleUrl>#redArea #myBalloonStyle</styleUrl>

或者在我的风格中写下它继承的东西&#34;它的气球风格来自第二种风格。

提前谢谢

1 个答案:

答案 0 :(得分:4)

KML功能只能包含带有单个样式引用的单个styleUrl,但该功能还可以包含内联样式元素。这种技术被称为&#34;合并&#34;风格。

如果要素同时具有共享样式和内联样式,则首先应用共享样式,然后内联样式将覆盖前者已指定的内容。

如果您使用BallonStyle作为共享样式,则可以覆盖内联样式中的特定元素,如颜色。

<Placemark>
    <styleUrl>#myBalloonStyle</styleUrl>
    <Style>
       <LabelStyle>
          <color>ff0000cc</color>
       </LabelStyle>
    </Style>
</Placemark>

这是一个带有全局BalloonStyle的complete example。点击&#34; 原始&#34;,将内容保存到本地文件,然后在Google地球中打开。