单击标记(单击事件)时如何更改标记图标,并在单击另一个标记时将其返回到正常图标?Google Maps API v3,点击时如何更改标记图标
回答
我还没有测试过这段代码,所以可能会出现拼写错误或错误,但它应该给你提供这个想法。
首先,定义一个回调来设置所有标记为正常图标(重置任何先前点击标记)和当前点击的标记的图标设定为所选择的图标:
var markerCallback = function() {
for (var i=0; i<arrayOfMarkers.length; i++) {
arrayOfMarkers[i].setIcon(normalIcon);
}
this.setIcon(selectedIcon);
}
然后,分配回调每个标记上的点击事件如下所示:
google.maps.event.addListener(marker, 'click', markerCallback);
确实有一些代码可以改进。例如,您可能不希望normalIcon
,selectedIcon
和arrayOfMarkers
成为上述代码假定它们的全局变量。如果您有很多标记,则可能需要跟踪之前选定的标记,而不是让for
循环重置每个标记上的图标。
但正如我所说,这应该给你的想法。
只需在任何情况下,任何人都希望看到跟踪上一个标记的全局变量像卡斯帕提到,这里的一个例子是我做过什么:
google.maps.event.addListener(marker,'click',function() {
if (selectedMarker) {
selectedMarker.setIcon(normalIcon);
}
marker.setIcon(selectedIcon);
selectedMarker = marker;
});
(后设置selectedMarker作为一个全局变量)
谢谢!它的工作:) – VishwaKumar 2012-05-16 11:53:25
需要我的情况下的一些变化,但想法是超级干净的人,谢谢 – vaskort 2015-11-26 14:43:40
优秀的人,你提供了最好的解决方案 – Devz 2016-02-15 16:10:51
- 1. Google Maps API v3:如何动态更改标记图标?
- 2. 在Google Maps API V3中单击更改KML地标图标
- 3. Google Maps API v3,删除标记图标或更改为“空白”?
- 4. Google maps api v3删除标记时dragstart
- 5. Google Maps API v3标记坐标
- 6. 如何更改Google Maps API V3中的图标颜色?
- 7. Google Maps Api v3:如何更改Directions(set)面板中的默认航点标记?
- 8. 如何在Google Maps API v3中将标记添加到标记
- 9. Google Maps API v3:标记未被删除
- 10. 刷新标记 - Google Maps JavaScript API v3
- 11. 多标记问题(Google Maps API v3)
- 12. Google Maps API V3上的限制标记
- 13. 在Google Maps API V3中绘制标记
- 14. Google Maps API v3 SVG标记消失
- 15. Google Maps JS API v3标记颜色
- 16. Google Maps API v3多个标记Infowindow
- 17. Google Maps API v3 - 如何更新标记的InfoWindow
- 18. Maps API Javascript v3如何使用鼠标单击加载标记
- 19. Google Maps API v3:如何在点击另一个标记时将标记颜色返回原始位置?
- 20. Google Maps Api v3,自制集群图标
- 21. Google地图标记不显示(Google Maps API v3)
- 22. 如何在Google Maps JavaScript API v3中旋转标记图标图像
- 23. Google Maps API标记标题
- 24. Google Maps API v2街景标记图标
- 25. 将Google Maps标记图标更改为自定义图标
- 26. 如何更改vue-google-maps中的标记图标
- 27. Google Maps API v3的可扩展地图标记覆盖图
- 28. 如何在点击此处时更改标记图标地图
- 29. Google Maps Api - 用鼠标点击删除标记
- 30. Android Google Map V2:点击另一个标记时如何更改之前点击的标记图标
将是一个更容易简单地将当前选中标记分配给一个全局变量,而不是通过所有标记每次:) – 2011-06-12 17:49:21
@Kasper运行:是的,你是正确的,这将是更好! (在我的辩护中,我提到了这个问题:“如果你有很多标记,你可能想跟踪上一个选定的标记,而不是在每个标记上都有一个'for'循环重置图标。 “) – Trott 2011-06-12 18:46:43
我确实很抱歉,我完全错过了那部分。只专注于代码示例:D – 2011-06-12 23:35:38