天天看點

web高德地圖路線規劃(多條)

由于這個是官方的api,官方中也有案例,這裡就不細說了,直接上代碼

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  <title>途經點</title>
  <style>
    html,
    body,
    #container {
      width: 100%;
      height: 100%;
    }

    .label {
      padding: 10px 20px;
      color: #fff;
      font-size: 16px;
    }

    .label0 {

      background: blueviolet;

      border: 1px solid blueviolet;
    }

    .label1 {
      background: pink;
      border: 1px solid pink;
    }

    .label2 {
      background: yellow;
      border: 1px solid yellow;
    }
    .label3 {
      background: red;
      border: 1px solid red;
    }

    .amap-marker-label {
      border: none;
    }

    #panel {
      position: fixed;
      background-color: white;
      max-height: 90%;
      overflow-y: auto;
      top: 10px;
      right: 10px;
      width: 280px;
    }

    #panel .amap-lib-driving {
      border-radius: 4px;
      overflow: hidden;
    }
  </style>
  <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
  <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
  <script type="text/javascript"
    src="https://webapi.amap.com/maps?v=1.4.15&key=960d4c12045ed072b809c3602ba776dd&plugin=AMap.Driving"></script>
  <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
</head>

<body>
  <div id="container"></div>
  <div id="panel"></div>
  <script type="text/javascript">
    let positionData = [
      { content: ['wwj', 'hhs', 'zjl'], position: [[116.388028, 39.865042],[116.579028, 39.885042], [116.427281, 40.903719],], linePoint: [[116.579028, 39.885042]] ,outlineColor:'#658'},
      { content: ['wwj', 'hhs', 'zjl', 'zmf'], position: [[115.388028, 34.865042],[116.579028, 39.185042], [116.579028, 38.885042], [116.427281, 38.903719]],
       linePoint: [[116.579028, 39.185042], [116.579028, 38.885042]] ,outlineColor:'#3700ff'}
    ]
    let position = [[116.388028, 39.865042], [116.427281, 40.903719]];
    let linePoint = [[116.579028, 39.885042]]
    var pos_marker = [];
    var driving = [];
    console.log(position)
    //基本地圖加載
    var map = new AMap.Map("container", {
      resizeEnable: true,
      center: [116.397428, 39.90923],//地圖中心點
      zoom: 13 //地圖顯示的縮放級别
    });
    var labelOffset = new AMap.Pixel(-23, -28);
    let drivingData = {};
    for (let i = 0; i < positionData.length; i++) {
      for (let j = 0; j < positionData[i].content.length; j++) {
        pos_marker[j] = new AMap.Marker({
          position: positionData[i].position[j], // 經緯度對象,也可以是經緯度構成的一維數組[116.39, 39.9]
          label: {
            content: `<div class='label${j} label'>${positionData[i].content[j]}</div>`,
            offset: labelOffset
          }
        });
        map.add(pos_marker[j])
        // debugger
      }

      driving[i] = new AMap.Driving({
        map: map,
        panel: "panel",
        isOutline: true,
        outlineColor: positionData[i].outlineColor,
        autoFitView: true,
        ferry: 0.5
      });
      console.log( positionData[i].linePoint)

      driving[i].search(positionData[i].position[0], positionData[i].position[positionData[i].position.length-1], {
        waypoints:positionData[i].linePoint
      }, function (status, result) {
        // result 即是對應的駕車導航資訊,相關資料結構文檔請參考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult
        if (status === 'complete') {
          console.log(result)
          log.success('繪制駕車路線完成')
        } else {
          log.error('擷取駕車資料失敗:' + result)
        }
      });
    }
  </script>
</body>

</html>
           

繼續閱讀