apsx/html使用Vue开发百度地图(现在以驾车路线规划为例)
第一步:在<head></head>标签添加vue.js、以及<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=你在百度申请的key"></script>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>搭乘车报备查询</title>
<script src="../vue-2.6.12.js"></script>
<link rel="stylesheet" href="../elementui-2.15.6/elmentui.css">
<link rel="stylesheet" href="../elementui-2.15.6/icon.css">
<script src="../elementui-2.15.6/elementui.js"></script>
<link rel="stylesheet" href="../css/CCBB/List.css">
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=你在百度申请的key"></script>
</head>
<body id="app">
<div id="allmap">
</body>
</html>
第二步:
<script type="text/javascript">
var vue = new Vue({
el: '#app',
data: {
detailData:{},
PointList:[
{lng: '108.256589', lat: '35.326589'},
{lng: '107.654589', lat: '39.568568'},
{lng: '104.658956', lat: '36.256589'}
]
},
mounted(){
this.drawMap();
},
methods: {
drawMap(){
this.$nextTick(() => {
let myMap;
// 创建地实例
myMap = new BMap.Map("allmap"); //在指定的容器内创建地图实例
myMap.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用。
myMap.centerAndZoom(new BMap.Point(108.983569, 34.285675), 13); // 可以随机的一个坐标点
myMap.clearOverlays(); // 清除地图上所有的覆盖物
// 创建2个点对象
let p1 = new BMap.Point(pointArr[0].lng, pointArr[0].lat); // 起点
let p2 = new BMap.Point(pointArr[pointArr.length - 1].lng, pointArr[pointArr.length - 1].lat); // 终点
// 创建驾车实例
let driving = new BMap.DrivingRoute(myMap);
driving.search(p1, p2); // 第一个驾车搜索
driving.setSearchCompleteCallback(function (res) {
let points = [];
this.PointList.map(item => {
points.push(new BMap.Point(item.lng, item.lat))
})
// let points = driving.getResults().getPlan(0).getRoute(0).getPath(); // 通过驾车实例,获得一系列点的数组
console.log('points=', points); // 路线坐标数组
let polyline = new BMap.Polyline(points, { strokeColor: "#4C82FF", strokeWeight: 5, strokeOpacity: 1 });
myMap.addOverlay(polyline); // 增加折线
// 重新设置起始点,终点图标和偏移
let icon1 = new BMap.Icon('../../Resources/image/ic_qidian.png', new BMap.Size(40, 42), { anchor: new BMap.Size(25, 40), });
let icon2 = new BMap.Icon('../../Resources/image/ic_zhongdian.png', new BMap.Size(40, 42), { anchor: new BMap.Size(25, 40), });
let mkr1 = new BMap.Marker(p1, { icon: icon1 });
let mkr2 = new BMap.Marker(p2, { icon: icon2 });
myMap.addOverlay(mkr1);
myMap.addOverlay(mkr2);
setTimeout(() => {
// 调整到最佳视野(整个驾车路线完整显示在地图上)
myMap.setViewport(pointArr);
}, 1000);
})
})
}
}
})
</script>

浙公网安备 33010602011771号