单击标记(单击事件)时如何更改标记图标,并在单击另一个标记时将其返回到正常图标?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)添加/更新标记
- 5. Google Maps API v3添加地图标记
- 6. 如何在google javascript maps api v3中更改标记位置?
- 7. 如何在google maps api v3中创建可点击的图标?
- 8. Google Maps API v3标记坐标
- 9. 如何更改Google Maps API V3中的图标颜色?
- 10. 隐藏标记Google Maps API v3,点击一下
- 11. 使用Google Maps API v3模拟点击带KML的标记
- 12. 标记不会触发点击事件 - Google Maps JavaScript API V3
- 13. Google Maps API v3多个可点击标记
- 14. Google Maps Api v3:如何更改Directions(set)面板中的默认航点标记?
- 15. 如何在Google Maps API v3中将标记添加到标记
- 16. 多标记问题(Google Maps API v3)
- 17. 刷新标记 - Google Maps JavaScript API v3
- 18. Google Maps API v3多个标记Infowindow
- 19. Google Maps JavaScript API v3的标记
- 20. 删除标记 - Google Maps JavaScript API v3
- 21. Google Maps JS API v3标记颜色
- 22. Google Maps API V3上的限制标记
- 23. 未显示Google Maps API v3标记
- 24. Google Maps API V3标记不加载
- 25. Google Maps API v3:标记未被删除
- 26. Google Maps API v3禁用标记
- 27. 在Google Maps API V3中绘制标记
- 28. 标记拖拽事件Google Maps API V3
- 29. Google Maps API v3无法创建标记...
- 30. Google Maps API v3 SVG标记消失
将是一个更容易简单地将当前选中标记分配给一个全局变量,而不是通过所有标记每次:) – 2011-06-12 17:49:21
@Kasper运行:是的,你是正确的,这将是更好! (在我的辩护中,我提到了这个问题:“如果你有很多标记,你可能想跟踪上一个选定的标记,而不是在每个标记上都有一个'for'循环重置图标。 “) – Trott 2011-06-12 18:46:43
我确实很抱歉,我完全错过了那部分。只专注于代码示例:D – 2011-06-12 23:35:38