地图功能开发杂记

来源:互联网 发布:递归算法棋子移动java 编辑:程序博客网 时间:2024/05/21 10:10

1,对地图进行事件的监听和移除监听

map.addEventListener("tilesloaded",add_marker);function add_marker(){map.clearOverlays();//清除现有的markervar center = map.getCenter();position_arr[1] = parseFloat(center.lat);//添加偏移量----yposition_arr[0] = parseFloat(center.lng);//添加偏移量----xvar pt = new BMap.Point(position_arr[0],position_arr[1]);var marker = new BMap.Marker(pt); // 创建标注map.addOverlay(marker); // 将标注添加到地图中marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画map.removeEventListener("tilesloaded",add_marker);}
不能写成如下情况:

var map = new BMap.Map("MapContent",{minZoom:12});var point = new BMap.Point(112.982288,28.198277);map.centerAndZoom(point,16);map.addEventListener("dragend",function(e){});map.removeEventListener("dragend",function(e){});根本没效果 啥事件都没移除掉
说明:

两个函数都是匿名函数,地址不一样的,不认为是同一个函数,所以你卸载事件调用的方法卸载的是一个新的匿名函数,当然卸载不掉原来的。
你要定义一个实名函数,然后用函数名卸载。

2,添加地图矢量图层标注(SuperMap iClient for javaScript)

//点对象 var point= new SuperMap.Geometry.Point(0,0); var pointVector = new SuperMap.Feature.Vector(point); pointVector.style={                    fillColor:"blue",                    strokeColor:"yellow",                    pointRadius:30,//点的半径    fillOpacity:0.6,//填充色透明度       fontWeight:"bold",    label:"test",            fontColor:"white"                };vector.addFeatures(pointVector);


效果图如下所示:





原创粉丝点击