地图功能开发杂记

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


效果图如下所示:





猜你喜欢

转载自blog.csdn.net/u013517229/article/details/78506751