webgis前端地图功能展示

2018-06-14  本文已影响0人  一株枸杞

技术亮点


开发框架

Bootstrap词条

直接使用VScode中Bootstrap的扩展


实现功能

var map = new BMap.Map("container");
  //设置默认城市
  map.setCurrentCity("广州");
  //设置默认点坐标(小蛮腰),初始级别为15
 var point = new BMap.Point(113.331084,23.112223);
 map.centerAndZoom(point, 15);
 //插入地图控件:缩放、比例尺、地图类型、缩略图
map.addControl(new BMap.NavigationControl()); //平移缩放
map.addControl(new BMap.ScaleControl());   //比例尺
map.addControl(new BMap.OverviewMapControl());   //缩略图
map.enableScrollWheelZoom(true);//开启滚轮。
//创建搜索实例,包括起点搜索和终点搜索,参考百度开发手册本地搜索修改
var startSearch =new BMap.LocalSearch(map,startOption);
var endSearch =new BMap.LocalSearch(map,endOption);

function mDriving(){
    var startPlace = document.getElementById("startInput").value;
    var endPlace = document.getElementById("endInput").value;
    startSearch.search(startPlace);
    endSearch.search(endPlace);
    document.getElementById("box").style.display="block";
}
for(c=0;c<pointList.length;c++){
        var marker = new BMap.Marker(pointList[c]);
        map.addOverlay(marker);
        //将途经点添加到地图上
        var label = new BMap.Label(c+1,{offset:new BMap.Size(20,-10)});
        marker.setLabel(label);
        }

       var  group = Math.floor( pointList.length /11 ) ;
       var mode = pointList.length %11 ;

       var driving = new BMap.DrivingRoute( map, {onSearchComplete: function(results){
              if (driving.getStatus() == BMAP_STATUS_SUCCESS){
                     var plan = driving.getResults().getPlan(0);
                     var  num = plan.getNumRoutes();
                     alert("plan.num :"+num);
                     for(var j =0;j<num ;j++){
                      var pts= plan.getRoute(j).getPath();    //点数组
                      var polyline = new BMap.Polyline(pts);    
                      map.addOverlay(polyline); 
                     }
              }
        }});
        for(var i =0;i<group;i++){
           var waypoints = pointList.slice(i*11+1,(i+1)*11);
           driving.search(pointList[i*11], pointList[(i+1)*11-1],{waypoints:waypoints});//waypoints表示途经点
        }   
        if( mode != 0){
         var waypoints = pointList.slice(group*11,pointList.length-1);//段数应该-1
         driving.search(pointList[group*11],pointList[pointList.length-1],{waypoints:waypoints});
        }
)
//不确认目的地数目需要根据用户输入计算点数组个数,然而这样会出现多路线生成的情况,我们暂时未能提出解决方案。

鉴于我们的系统功能,我们只需生成一条路线即可

document.getElementById("temporary").value="##**"+document.getElementById("startInput").value+"**----**"+document.getElementById("endInput").value+"**";
上一篇 下一篇

猜你喜欢

热点阅读