如何解决Google Maps API v3,如何在单击时更改标记图标
|| 单击标记时(在单击事件中)如何更改标记图标,并在单击另一个标记时将其恢复为普通图标?解决方法
我尚未测试此代码,因此可能有错别字或错误,但它应该可以为您提供帮助。
首先,定义一个回调以将所有标记设置为普通图标(以重置任何先前单击的标记),并将当前单击的标记的图标设置为所选图标:
var markerCallback = function() {
for (var i=0; i<arrayOfMarkers.length; i++) {
arrayOfMarkers[i].setIcon(normalIcon);
}
this.setIcon(selectedIcon);
}
然后,将回调分配给每个标记上的click事件,如下所示:
google.maps.event.addListener(marker,\'click\',markerCallback);
当然可以进行一些代码改进。例如,您可能不希望normalIcon
,selectedIcon
和arrayOfMarkers
是全局变量,就像上面的代码假定的那样。而且,如果您有很多标记,则可能要跟踪先前选择的标记,而不是使用for
循环在每个标记上重置图标。
但是,就像我说的那样,这应该可以为您提供想法。
, 无论如何,任何人都希望看到一个示例,该示例在Kasper提到的全局变量中跟踪先前的标记,这是我所做的:
google.maps.event.addListener(marker,function() {
if (selectedMarker) {
selectedMarker.setIcon(normalIcon);
}
marker.setIcon(selectedIcon);
selectedMarker = marker;
});
(在将selectedMarker设置为全局变量之后)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。