百度地图api同时标注多个点但信息框一样

我点击一个按钮“重庆市”进去希望在地图上显示出重庆市的一些符合规则的企业,当然是有很多个的,每个企业一个标注(就是一个红点),点击标注弹出一个框显示企业的详细信息。。问题... 我点击一个按钮“重庆市” 进去 希望在地图上显示出重庆市的一些符合规则的企业,当然是有很多个的,每个企业一个标注(就是一个红点),点击标注 弹出一个框 显示企业的详细信息。。 问题来了。。标注可以循环添加多个 但是 那个弹出框却永远都是一个, 也就是说 不管点击哪个标注 弹出的都是一个弹出框 显示的内容都是一样的,都是最后一个企业的信息。。。 展开
 我来答
hly516520
2019-09-13 · TA获得超过262个赞
知道答主
回答量:8
采纳率:0%
帮助的人:5.4万
展开全部
/**
* 添加标记
* @param [{id:主键,name:名称,lon:经度,lat:纬度,icon:图标,context:弹窗内容,viewImg:弹窗图片},...] data
*/
function addMar(data){
for(var i = 0; i < data.length; i++){
var marker = new BMap.Marker(new BMap.Point(data[i].lon, data[i].lat),{icon:new BMap.Icon(data[i].icon, new BMap.Size(50,50))});  // 创建标注
marker.setTitle(data[i].name);
marker.dataCont = data[i];

map.addOverlay(marker);

marker.addEventListener("click", function(e){   
var viewWin = "<h4 style='margin:0 0 5px 0;padding:0.2em 0'>"+e.target.dataCont.name+"</h4>" + 
"<img style='float:right;margin:4px' id='imgDemo' src='"+e.target.dataCont.viewImg+"' width='139' height='104' title='"+e.target.dataCont.name+"'/>" + 
"<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>"+e.target.dataCont.context+"</p>" + 
"</div>";
var infoWindow = new BMap.InfoWindow(viewWin);
this.openInfoWindow(infoWindow);
//图片加载完毕重绘infowindow
document.getElementById('imgDemo').onload = function (){
infoWindow.redraw();//防止在网速较慢,图片未加载时,生成的信息框高度比图片的总高度小,导致图片部分被隐藏
}
});
}
}

可以这样,先把生成标注的json数据直接存进marker对象.添加marker的点击监听,触发监听事件时会拿到marker对象本身,从里面可以获取之前我们存进去的json数据,然后拿这个json数据直接生成弹窗

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱分享原创内容
2014-04-22 · TA获得超过1122个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:66.4万
展开全部
百度的API只能做这些了,要想一次性全部加载各个企业的信息框,得自己去实现,难度应该也不大,写个脚本就可以
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
商户中心小服
2014-10-24 · TA获得超过1384个赞
知道大有可为答主
回答量:4693
采纳率:0%
帮助的人:2267万
展开全部
您好,该问题不属于标注认领问题,给您带来了不便,非常抱歉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式