js/vue 高德地图绘制驾车路线图

本文介绍如何使用AMap API在地图容器中绘制从起点到终点的驾车路线,包括地图初始化、路线规划策略设定及路线绘制过程。通过解析路线数据,实现起点、终点标记与路线的动态展示。

地图容器:

// css要给此容器设置宽高
<div class="map_container"></div>

画图

data{
return {
Clng:"120.267842",
Clat:"30.19439",
  Flng:"120.267417907715",
  Flat:"30.19460105896",
  Tlng:"120.269302368164",
Tlat:"30.2087898254395"
}
},
mounted(){
  this.drawMap();
},
methods:{

drawMap() { // 专车--画地图 let that = this; var map = new AMap.Map('map_container', { resizeEnable: true, zoom:14, center: [that.Clng, that.Clat] // 地图中心点的经纬度 }); AMap.plugin('AMap.Driving', function() { var driving = new AMap.Driving({ // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式,还有其他几种方式见Api文档 policy: AMap.DrivingPolicy.LEAST_TIME }) //起、终点 var start_xy = new AMap.LngLat(that.Flng, that.Flat) // 起点的经纬度 var end_xy = new AMap.LngLat(that.Tlng, that.Tlat) // 终点的经纬度 // 根据起终点经纬度规划驾车导航路线 driving.search(start_xy, end_xy, function(status, result) { if (status === 'complete') { if (result.routes && result.routes.length) { console.log(result.routes[0]); // 绘制第一条路线,也可以按需求绘制其它几条路线 var path = that.parseRouteToPath(result.routes[0]) var startMarker = new AMap.Marker({ position: path[0], icon: 'https://webapi.amap.com/theme/v1.3/markers/n/start.png', map: map }) var endMarker = new AMap.Marker({ position: path[path.length - 1], icon: 'https://webapi.amap.com/theme/v1.3/markers/n/end.png', map: map }) var routeLine = new AMap.Polyline({ path: path, isOutline: true, outlineColor: '#ffeeee', borderWeight: 2, strokeWeight: 5, strokeColor: '#0091ff', lineJoin: 'round' }) routeLine.setMap(map) // 调整视野达到最佳显示区域 map.setFitView([ startMarker, endMarker, routeLine ]) console.log('绘制驾车路线完成') } } else { console.log('获取驾车数据失败:' + result) } }); }) }, parseRouteToPath(route) { var path = [] for (var i = 0, l = route.steps.length; i < l; i++) { var step = route.steps[i] for (var j = 0, n = step.path.length; j < n; j++) { path.push(step.path[j]) } } return path }
}

 

转载于:https://www.cnblogs.com/leiting/p/9874905.html

Vue中使用高德地图(AMap)根据点坐标绘制路线,你可以按照以下步骤操作: 1. 首先,在项目中安装高德地图组件:如果你使用的是Vue CLI项目,可以在`main.js`中引入并配置高德地图API。 ```javascript import AMap from 'vue-amap'; Vue.use(AMap); AMap.initAMapApiLoader({ key: 'your_amap_key', // 将此处替换为你的高德地图API Key version: '1.4.16', // 或者最新版本 }); ``` 2. 创建地实例并绑定到Vue组件上: ```html <template> <div id="map"> <amap-map :zoom="zoom" :center="center"> <amap-polyline :points="routePoints" :polyline-options="{color: '#FF0000'}"></amap-polyline> <!-- 根据需要显示路线 --> </amap-map> </div> </template> <script> export default { data() { return { zoom: 15, center: [116.39, 39.9], // 北京坐标 routePoints: [], // 存放路径点的数组,每个点是一个包含经度和纬度的对象 }; }, created() { this.getRoute(); // 初始化获取路线数据 }, methods: { getRoute() { // 获取路线并填充routePoints // 使用高德地图的路线规划服务 API,这里仅作示例,实际应用需要替换为你的真实请求逻辑 const service = new AMap.Routing(); service.search('起点地址', '终点地址', { mode: 'Driving', // 路线模式,默认为驾车 onSearchComplete: (result) => { if (result && result.routes && result.routes[0]) { result.routes[0].paths.forEach(path => { this.routePoints.push({ lng: path[0][1], lat: path[0][0] }); }); } }, }); }, }, }; </script> ``` 3. 当你需要更新路线时,比如用户输入新的起点和终点,可以在相应方法中调用`getRoute`方法来刷新路线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值