百度地图API之地图加载方式(同步、异步)(二)

2014-11-24 11:39:18 · 作者: · 浏览: 13
);
}
},
error:function(data){
alert('error!');
}
});
return empPointArray;
}
function loadScript(){
empPoints=getEmployeePostion();//初始化所有的在勤人员
//alert("init emp:"+empPoints.length);
var scriptDom=document.createElement("script");
scriptDom.src="http://api.map.baidu.com/api key=3e280f09aae77af4248eb99129b3badc&v=1.3&services=false&callback=initialize";
document.body.appendChild(scriptDom);
}
/**
*初始百度地图
*/
function initialize(){
var map=new BMap.Map("createCaseMap");
var point=new BMap.Point(106.540983, 29.560692);//初始化点坐标
map.centerAndZoom(point, 15); //初始化地图,设置中心点坐标和地图级别
empCount=empPoints.length;//设置所有 的理赔人员
var points =[];//存放标注查堪人员的对象
//alert(empCount);
for(var i=0,k=empPoints.length;i
var onePoint=empPoints[i];
//alert("for-->"+onePoint);
if(onePoint.indexOf(",")>-1){
var lng=onePoint.split(",")[0];
var lat=onePoint.split(",")[1];
points[i]=new BMap.Point(lng, lat);//动态的把所有的在勤理赔人员经纬度设置在points中
}
}
//自定义覆盖物
var myIcon =new BMap.Icon("<%=basePath%>/images/map/redflag.png", new BMap.Size(100, 70),{//小车图片
offset: new BMap.Size(0, -5), //相当于 CSS精灵
imageOffset: new BMap.Size(0, 0) //图片的偏移量。为了使图片底部中心对准坐标点。
});
for(var m=0;m
//如果使用map.addOverlay添加大量数据时,会使浏览器变慢
map.addOverlay(new BMap.Marker(points[m],{icon:myIcon}));
}
map.setViewport(points); //调整地图的最佳视野为显示标注数组point
map.addEventListener('click',function(e){
//1、TODO 处理经纬度相同的人员在地图上的显示问题
//不能通过经纬度来查询出员工的个人信息、任务量
alert(e.point.lng+","+e.point.lat);
});
//alert("map初始化完成");
}
window.onload=loadScript;
在上面采用异步加载方式时,在FF浏览器下加载N次地图上的标注点都没问题,但在IE6、7、8、Chrome下只有第一次加载标注点的坐标可以,第二次后就不能了,不知为什么,麻烦知道是怎么回事的兄弟给我说下,目前我在项目中采用同步加载方式.