小程序获得两个坐标之间的骑行距离

小程序获得两个坐标之间的骑行距离和路线规划图

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
		}];
      }
    });
  },

这就完成了 欢迎大佬指教

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值