小程序获得两个坐标之间的骑行距离和路线规划图
1.先下载腾讯地图jssdkv1.2 点击去官网下载
2.然后引入项目
3.在你需要用到的页面引入第一个文件 qqmap-wx-jssdk.js(我没有试过全局引用,以前试过,请求的数据不能return 出去,所以就放弃了,有大佬可以指点下)
const QQMapWX = require('../../../utils/qqmap-wx-jssdk.js')
const qqmapsdk = new QQMapWX({
key: 'HFXBZ-NQSWI-ZGQGW-5URX4-WUXCF-VWFUQ' // 必填
});
4.下面就是传入参数和选择计算类型了
/**
* @param {起点经纬度} start
* @param {终点经纬度} end
*/
calculate: function (start, end, type) {
qqmapsdk.direction({
mode: 'bicycling', //可选值:'driving'(驾车)、'walking'(步行)、'bicycling'(骑行),不填默认:'driving',可不填
//from参数不填默认当前地址
from: start,
to: end,
success: function (res) {
//里面会返回一堆的参数 我只用了2个
//方案距离(单位/米)
console.log(res.result.routes[0].distance)
//方案时间(单位分钟)
console.log(res.result.routes[0].duration)
//下面就是路线规划了
const coors = res.result.routes[0].polyline,
pl = [];
//坐标解压(返回的点串坐标,通过前向差分进行压缩)
const kr = 1000000;
for (let i = 2; i < coors.length; i++) {
coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr;
}
//将解压后的坐标放入点串数组pl中
for (let i = 0; i < coors.length; i += 2) {
pl.push({
latitude: coors[i],
longitude: coors[i + 1]
})
}
//设置polyline属性,将路线显示出来,将解压坐标第一个数据作为起点
that.polylines = [{
points: pl,
color: '#1F9AE4',
width: 5
}];
}
});
},
这就完成了 欢迎大佬指教