百度地图---多点连线问题

 一、百度地图多点连线

有一个需求,需要将业务员拜访时拜访的客户在地图上显示出来,并根据拜访时的定位信息来形成一条拜访轨迹

思路:1:将拜访时定位信息按照时间排序,根据点对象来形成标注

      2:将两个定位点之间连线,最后得到一条拜访轨迹

demo:

多个定位点连线:

     var polyline = new BMap.Polyline(

  linePoints,  --多个点对象集合

 {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});

map.addOverlay(polyline);

for(var i=0;I<mark.length;i++){

    marker = new BMap.Marker(new BMap.Point(mark[i].y,mark[i].x);

  if(i==0){//给标注添加标签

label = new BMap.Label("起点",{offset:new BMap.Size(20,-10)});

 }else if(i==length-1){

label = new BMap.Label("终点",{offset:new BMap.Size(20,-10)});

 }else{

label = new BMap.Label("途经点"+i,{offset:new BMap.Size(20,-10)});

 }

   marker.setLabel(label); //标签添加到标注上

   map.addOverlay(marker); //添加标注

  

   var content='这是第'+(i+1)+'个点';

   infoWindow = new BMap.InfoWindow(content); //给标注添加信息窗口

   marker.infoWindow = infoWindow;

   marker.addEventListener("click", function(e){  //标注添加点击事件

   this.openInfoWindow(e.target.infoWindow);

 });

}

由于在页面初始化时候的地图可能和路线所展示的地图不在同一个位置,所以在拿到数据后,取出第一个点坐标将其设置为地图的中心点

map.centerAndZoom(new BMap.Point(infor[0].deviationy,infor[0].deviationx),17);

然后调整地图展示路线最佳视野:map.setViewport(linePoints);  //调整路线到最佳视野

注意,如何在文字标注没有被方框包起来,可能是样式冲突了。添加下面的代码即可

label.setStyle({maxWidth:"none"});

界面实现效果:

å¾ç

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值