我正在尝试在鼠标悬停时更改地标图片。这是mouseover事件处理程序:
function changePlacemark(e){
e.preventDefault();
this.getStyleSelector().getIconStyle().getIcon().setHref('myImageURL');
}
问题在于,当该功能运行时,它确实会改变图像,但它也会完全重置地标,使其再次进行缩放动画,就好像是一个全新的地标被添加到地图中一样。 / p>
有没有办法防止这种情况发生?我希望改变图像,而不是重置地标。一种废墟的体验。
答案 0 :(得分:2)
当然,您可以使用样式在KML或api中创建滚动图标。您只需设置要素的样式,而不是更新图标的href属性。
在api中:
var style = ge.createStyle("");
style.getIconStyle().getIcon().setHref('myImageURL');
feature.setStyleSelector(style);
在Kml中:
<Document>
<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>Roll over this icon</name>
<styleUrl>#exampleStyleMap</styleUrl>
<Point>
<coordinates>-122.0856545755255,37.42243077405461,0</coordinates>
</Point>
</Placemark>
</Document>