首页 > 代码库 > 百度地图API——MarkerTool单击事件的添加

百度地图API——MarkerTool单击事件的添加

    百度地图API中实现标记功能,一种是使用覆盖物中的Marker来直接实现,这么用的好处是可以直接使用官方2.0提供的各种接口,但是一些复杂需求实现起来不免有些繁琐,比如鼠标跟随的式样修改,单击后的式样变更等等。

    另外一种选择是使用1.2接口中提供的MarkerTool开源库,这个现实标记功能基本是够用了(http://developer.baidu.com/map/index.php?title=open/library)

    但在实现标注添加后的单击事件监听时需要对源码进行适当的修改,例如实现标记图标的click事件监听

    想象中应该是这样:

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);


百度地图API——MarkerTool单击事件的添加