百度地图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);