原文发布时间:2014-05-16
翻译:毛毛虫
当向KML写入要素时,可以通过鼠标悬停在Google Earth上创建一种滚轮效果。使用StyleMap可以设置符号隐藏,只有当鼠标在要素上悬停时才显示。
在FME中也可以实现,需要创建一个虚设的要素,然后使用KMLStyler创建两个StyleMaps。这两个转换器创建<StyleMap>元素有两个键/值对,表示地图中的每个图标在对应的状态下的图标样式。这两个图标状态是normal和highlight。隐式StyleMaps使得创建StyleMaps更容易。为了创建一个隐式样式地图,对普通和高亮状态简单的设置kml_target_style_normal和kml_target_style_highlight格式属性到样式元素的id。这个写模块根据需要会考虑创建StyleMap元素。
Style属性的相关设置如下:
注意样式需要写入到Style要素类型中保存:
KML中相关的详细规范:
“Styles and Markup”文件夹中的“突出显示图标”介绍了如何用 KML 创造滚轮效果。该文档定义了两种样式:一种用于“normalPlacemark”,另一种用于“highlightPlacemark”(光标移动到图标上时显示)。<StyleMap>元素有两个键/值对,可以将每个图标样式映射到图标状态。图标有两种状态:普通和突出显示。
下面显示了基本步骤:
- 为地标的普通图标定义<Style>,并为它指定 ID(此处是“normalPlacemark”)。<Style>包含一个<Icon>,<Icon>中包含要使用的实际图片的<href>(如下所示)。
- 为地标的突出显示图标定义<Style>,并为它指定 ID(此处为“highlightPlacemark”)。
- 创建<StyleMap>元素并为它指定 ID(“exampleStyleMap”)。地标将指向该 ID。
- 在<StyleMap>元素中,为“普通”状态指定“#normalPlacemark”。
- 在<StyleMap>元素中,为“突出显示”状态指定“#highlightPlacemark”。
- 在地标中添加引用“#exampleStyleMap”的<styleUrl>元素。
<?xml version="1.0" encoding="UTF-8"?>
<kmlxmlns="http://earth.google.com/kml/2.2">
<Document>
<name>突出显示的图标</name>
<description>请将您的鼠标置于图标之上,以观察它显示新图标</description>
<Style id="highlightPlacemark">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/red-stars.png</href>
</Icon>
</IconStyle>
</Style>
<Style id="normalPlacemark">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href>
</Icon>
</IconStyle>
</Style>
<StyleMap id="exampleStyleMap">
<Pair>
<key>normal</key>
<styleUrl>#normalPlacemark</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#highlightPlacemark</styleUrl>
</Pair>
</StyleMap>
<Placemark>
<name>在图标上滚动</name>
<styleUrl>#exampleStyleMap</styleUrl>
<Point>
<coordinates>-122.0856545755255,37.42243077405461,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
效果图: