我再利用百度地图标点并且上传图片信息的时候,多点标记的时候,从数据库中查出来的数据完全正常,并且点的位置也是正常,就是因为局部变量的命名有问题,所有的点显示的都是最后一个点的信息。
$.ajax({ url: "MessageServlet?method=pointShowDitu", type: "post", success:function (data) { var jsobj = JSON.parse(data); // alert(jsobj["data"].length); for (var i = 0;i<jsobj["data"].length;i++){ let maker = new BMapGL.Marker(new BMapGL.Point(jsobj["data"][i].lng,jsobj["data"][i].lat)); map.addOverlay(maker); var arr = new Array(); arr = jsobj["data"][i].allImgUrl.split(","); // alert(arr.length) //每个地点有多少张图片 var text=""; for (var j = 0 ;j<arr.length;j++){ text += " <img style='float:left;margin:0 4px 22px; 139px;height: 104px;' id='' src=""+arr[j]+"" />"; } let infoWindow = new BMapGL.InfoWindow(text); // marker添加点击事件 maker.addEventListener('click', function () { this.openInfoWindow(infoWindow); // 图片加载完毕重绘infoWindow }); } } })
我标红色的这个地方,之前一直使用的是var,导致把前面点的信息都覆盖了,改为let就可以正常显示了。