百度地圖API中實現標記功能,一種是使用覆蓋物中的Marker來直接實現,這麼用的好處是能夠直接使用官方2.0提供的各類接口,可是一些複雜需求實現起來難免有些繁瑣,好比鼠標跟隨的式樣修改,單擊後的式樣變動等等。
php
另一種選擇是使用1.2接口中提供的MarkerTool開源庫,這個現實標記功能基本是夠用了(http://developer.baidu.com/map/index.php?title=open/library) spa
但在實現標註添加後的單擊事件監聽時須要對源碼進行適當的修改,例如實現標記圖標的click事件監聽code
想象中應該是這樣:對象
mkrTool.addEventListener("click", function(e) { alert("test"); });
實際上,因爲MarkerTool的實例在添加的單擊事件後就會將click事件移除掉,而且只是針對map對象的操做,因此實際的修改點應該是源代碼MarkerTool.js中的_clickHandler方法,以下:接口
var mkr = new BMap.Marker(pt, {icon: me._opts.icon}); //此處增長Marker監聽 mkr.addEventListener("click", function(e) { alert("test"); }); me._map.addOverlay(mkr);