百度地图之循环标注

来源:互联网 发布:mac 两个窗口并排显示 编辑:程序博客网 时间:2024/05/06 23:18

        在使用百度地图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()中调用。


0 0
原创粉丝点击