1,对地图进行事件的监听和移除监听
map.addEventListener("tilesloaded",add_marker);
function add_marker(){
map.clearOverlays();//清除现有的marker
var center = map.getCenter();
position_arr[1] = parseFloat(center.lat);//添加偏移量----y
position_arr[0] = parseFloat(center.lng);//添加偏移量----x
var 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);
效果图如下所示: