您的位置:首页 > 其它

百度地图之循环标注

2015-01-19 09:41 183 查看
        在使用百度地图api过程中,需要给相应的点添加标注,当我将获取的数据使用循环的方式标注出来后,问题就出现了,

所有的标注内容一样,被最后的数据给覆盖了,查到许多的解决方案,其中我认为更符合我的需求的拿出来分享。

        答案源于这里:戳吧!

        直接上标注代码:

 

function addMark(){
var json = ${map};//后台数据
var opts = {
width : 250,
height: 120,
title : "船舶信息" ,
enableMessage:false
}
for(var i=0;i<json.length;i++){
var content =
"<div class='metle'><table>"+
"<tr><td>经度:"+json[i].longitude+"</td></tr>"+
"<tr><td>纬度:"+json[i].latitude+"</td></tr>"+
"<tr><td>时间:"+json[i].utc+"</td></tr>"+
"</table></div>";
var myIcon = new BMap.Icon("${base}/lib/images/1.png", new BMap.Size(15,15));//自定义icon
var infoWindow = new BMap.InfoWindow(content,opts);//创建信息窗口
var mark = new BMap.Marker(new BMap.Point(json[i].longitude,json[i].latitude),{icon:myIcon});  // 创建标注
mark.infoWindow = infoWindow;//关键点!给当前标注添加属性保存window信息
mark.addEventListener("mouseover",function(e){ this.openInfoWindow(e.target.infoWindow);});//回调对应的信息
map.addOverlay(mark);
}
}
至于addMark()函数直接放在initMap()中调用。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息