如何使用JS和百度地圖實(shí)現(xiàn)地圖行車路線規(guī)劃功能
隨著科技的不斷進(jìn)步,地圖行車路線規(guī)劃已經(jīng)成為我們?nèi)粘I钪斜夭豢缮俚墓δ苤弧6鵀榱藢?shí)現(xiàn)地圖行車路線規(guī)劃,我們能夠利用JS和百度地圖來(lái)實(shí)現(xiàn)這個(gè)功能。本文將詳細(xì)介紹如何使用JS和百度地圖實(shí)現(xiàn)地圖行車路線規(guī)劃功能,并給出具體的代碼示例。
一、準(zhǔn)備工作
在開(kāi)始編寫(xiě)代碼之前,我們需要準(zhǔn)備一些必要的工作:
- 百度地圖密鑰:在百度地圖開(kāi)放平臺(tái)申請(qǐng)一個(gè)密鑰,并記下來(lái),后面會(huì)用到。
引入百度地圖API:在HTML文件中引入百度地圖的JS文件,例如:
<script src="http://api.map.baidu.com/api?v=2.0&ak=YOUR-KEY"></script>
登錄后復(fù)制
其中,YOUR-KEY需要替換為你申請(qǐng)到的密鑰。
二、創(chuàng)建地圖
首先,我們需要?jiǎng)?chuàng)建一個(gè)地圖容器,并顯示在頁(yè)面中。HTML代碼如下:
<div id="map"></div>
登錄后復(fù)制
然后,在JS中添加以下代碼來(lái)創(chuàng)建地圖:
var map = new BMap.Map("map"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 15);
登錄后復(fù)制
其中,”map”是地圖容器的ID,這里我們創(chuàng)建了一個(gè)默認(rèn)的地圖,并設(shè)置地圖的中心點(diǎn)和縮放級(jí)別。
三、添加行車路線規(guī)劃功能
接下來(lái),我們需要添加行車路線規(guī)劃的功能。以下是代碼示例:
// 創(chuàng)建DrivingRoute實(shí)例,使用自動(dòng)獲取用戶位置的定位 var driving = new BMap.DrivingRoute(map, {onSearchComplete: drivingComplete}); driving.setLocation("北京"); // 規(guī)劃行車路線 driving.search("北京市海淀區(qū)上地十街10號(hào)", "北京市朝陽(yáng)區(qū)東直門外大街1號(hào)"); // 定義行車路線規(guī)劃完成時(shí)的回調(diào)函數(shù) function drivingComplete(results) { if (driving.getStatus() === BMAP_STATUS_SUCCESS) { var plan = results.getPlan(0); var route = plan.getRoute(0); var distance = route.getDistance(false) / 1000; // 單位為千米 var duration = route.getDuration(false) / 60; // 單位為分鐘 var steps = route.getSteps(); var polyline = new BMap.Polyline(route.getPath()); // 在地圖上顯示行車路線 map.addOverlay(polyline); // 輸出行車路線的距離和預(yù)計(jì)時(shí)間 console.log("距離:" + distance + "千米"); console.log("預(yù)計(jì)時(shí)間:" + duration + "分鐘"); // 輸出行車路線的每個(gè)步驟 for (var i = 0; i < steps.length; i++) { console.log(steps[i].getDescription()); } } }
登錄后復(fù)制
以上代碼中,我們創(chuàng)建了一個(gè)DrivingRoute實(shí)例,并設(shè)置了地圖容器和回調(diào)函數(shù)。然后,我們使用search方法來(lái)規(guī)劃行車路線。當(dāng)行車路線規(guī)劃完成后,會(huì)觸發(fā)回調(diào)函數(shù),我們可以在回調(diào)函數(shù)中獲取行車路線的具體信息,并在地圖上顯示行車路線。
四、完整示例代碼
下面是一個(gè)完整的示例代碼,你可以將它復(fù)制到一個(gè)HTML文件中運(yùn)行:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>地圖行車路線規(guī)劃示例</title> </head> <body> <div id="map" style="width: 800px; height: 600px;"></div> <script src="http://api.map.baidu.com/api?v=2.0&ak=YOUR-KEY"></script> <script> var map = new BMap.Map("map"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 15); var driving = new BMap.DrivingRoute(map, {onSearchComplete: drivingComplete}); driving.setLocation("北京"); driving.search("北京市海淀區(qū)上地十街10號(hào)", "北京市朝陽(yáng)區(qū)東直門外大街1號(hào)"); function drivingComplete(results) { if (driving.getStatus() === BMAP_STATUS_SUCCESS) { var plan = results.getPlan(0); var route = plan.getRoute(0); var distance = route.getDistance(false) / 1000; // 單位為千米 var duration = route.getDuration(false) / 60; // 單位為分鐘 var steps = route.getSteps(); var polyline = new BMap.Polyline(route.getPath()); map.addOverlay(polyline); console.log("距離:" + distance + "千米"); console.log("預(yù)計(jì)時(shí)間:" + duration + "分鐘"); for (var i = 0; i < steps.length; i++) { console.log(steps[i].getDescription()); } } } </script> </body> </html>
登錄后復(fù)制
在以上代碼中,你需要將”YOUR-KEY”替換為你自己的百度地圖密鑰。
總結(jié)
通過(guò)上述方法,我們可以輕松地使用JS和百度地圖實(shí)現(xiàn)地圖行車路線規(guī)劃功能。只需幾行代碼,便可以實(shí)現(xiàn)在地圖上顯示行車路線,并獲取行車路線的相關(guān)信息。希望這篇文章對(duì)你有所幫助!