关于计算2点之间的距离都依赖了腾讯地图,所以请先在

下面具体讲计算2点之间距离的方法。

方法一:

getPosition: function() {var that = this;

wx.getLocation({

success:function(res) {

that.setData({

fromLng: res.longitude,

fromLat: res.latitude

})

}

})

},

2.通过腾讯地图 逆解析 你的目的地地址,获取经度,纬度:

wx.request({

url:'https://apis.map.qq.com/ws/geocoder/v1/',

data: {"key": "你的腾讯地图 key","address": "目的地"},

method:'GET',

success:function(res) {if(res.data.result) {

const addressLocation=res.data.result.location;

const courseLat= addressLocation.lat;//获取目的地的纬度

const courseLng = addressLocation.lng;//获取目的地的经度

}

that.setData({

toLat: courseLat,

toLng:courseLng

})

}

})

3.定义 计算距离的 方法:

getDistance: function(lat1, lng1, lat2, lng2) {

lat1= lat1 || 0;

lng1= lng1 || 0;

lat2= lat2 || 0;

lng2= lng2 || 0;var rad1 = lat1 * Math.PI / 180.0;var rad2 = lat2 * Math.PI / 180.0;var a = rad1 -rad2;var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;var r = 6378137;var distance = r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)));returndistance;

}

4.调用该方法:

getDistance(fromLng,fromLat,toLat,toLng)

我需要同时计算多条数据的距离,我发现在遍历返回目的地经纬度的时候,它返回来的结果并不是按照你列表的顺序返回来的,而且有些地址还解析不出来。

不知道是我的写法有问题,还是接口调用的问题。如果哪位大神看到网上有这种示例,麻烦提供一下链接给我,借鉴学习一下~后面我采取的是下面这种方法:

方法二:通过腾讯地图的距离计算接口

1.跟方法一第1步一样,获取用户的接口权限;

2.把 qqmap-wx-jssdk.min.js 加到你小程序;

3.在需要计算距离的js页面引用 qmap-wx-jssdk.min.js ,并实例化该对象:

const QQMapWX = require('../../lib/js/qqmap-wx-jssdk.min.js');varqqmapsdk;

onLoad:function(options) {//实例化API核心类

qqmapsdk = newQQMapWX({

key:'VBXBZ-YVGRW-2Z4RK-O6H27-WEXUT-3ZB2M'});

},

4.先逆解析目的地,再调用

wx.request({

url:'https://apis.map.qq.com/ws/geocoder/v1/',

data: {"key": "你的key","address": "目的地名称"},

method:'GET',

success:function(res) {if(res.data.result) {

const addressLocation=res.data.result.location;

const courseLat=addressLocation.lat;

const courseLng=addressLocation.lng;

let destinationDistance;

qqmapsdk.calculateDistance({

to: [{

latitude: courseLat,

longitude: courseLng

}],

success:function(res) {

destinationDistance= res.result.elements[0].distance;

let distanceKm= `${(destinationDistance/1000).toFixed(2)}Km`;//转换成km

that.setData({

distance: distanceKm

})

},

fail:function(res) {

console.log(res);

}

});

}

}

})

注意腾讯地图的请求限制:

微信小程序 高德地图知道两点求道路_微信小程序——计算2点之间的距离相关推荐

  1. 高德地图api调用demo_微信小程序----高德地图API实现的DEMO

    [实例简介] 微信小程序----高德地图API实现的周边,天气,路线规划,地址详情等的DEMO.简单的效果,问一下官方能不能不要乱涨积分,你们涨积分,作者被骂!我真的很失望,再这样,我就不上传资源了! ...

  2. 微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-翟东平-专题视频课程...

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-2445人已学习 课程介绍         微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识. 微信小 ...

  3. 视频教程-微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-微信开发

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  4. 视频教程-微信小程序系统教程python版[3/3阶段]_微信小程序支付-手游开发

    微信小程序系统教程python版[3/3阶段]_微信小程序支付 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  5. 微信小程序——计算2点之间的距离

    关于计算2点之间的距离都依赖了腾讯地图,所以请先在腾讯地图官网申请key.具体流程看下图: 下面具体讲计算2点之间距离的方法. 方法一: 1.通过 wx.getLocation(Object obje ...

  6. 高德地图哪个语音包最好_高德地图app怎么录制语音包?高德地图将自己的语音用作导航语音包的方法介绍...

    高德地图是一款中国专业的手机地图,拥有全面的地点信息,特色语音导航.智能路线规划,是我们常用的一款移动地图导航工具,用高德地图语音导航,可以听到很多明星的导航语音播报,当然你也可以自己录制语音包.那么 ...

  7. 高德地图安卓 拖拽选点_不止微信支付宝 高德地图正式上线小程序入口

    此前,即速应用发布的<小程序2019年行业年中增长研究报告>指出,小程序发展周期主要分为四个阶段:探索期.启动期.高速发展期和成熟期,目前处于高速发展后期,逐渐平稳发展. 2017年小程序 ...

  8. 高德地图小程序步行路线显示_微信小程序 高德地图路线规划实现过程详解

    前言 最近项目中做到相关网约车小程序.需要使用到地图中的路线规划,对3种地图进行了分析.这里稍微做一下总结: 百度地图 百度坐标 (BD-09) 腾讯地图 火星坐标(GCJ-02) 高德地图 火星坐标 ...

  9. right 微信小程序_微信小程序高德地图API

    本文章介绍微信小程序调用高德地图API的过程,使用高德定位功能做演示. 微信小程序目前支持百度地图.高德地图.腾讯地图.用法可以说是基本完全一样,本文章以高德为例,简单说一下他们的区别,高德地图精度应 ...

最新文章

  1. WPF Layout System
  2. 如何用photoshop做24色环_如何用Photoshop给照片添加印章水印,内附印章模板素材...
  3. asp.net 学习的一些地址
  4. 关于VS打包程序无法弹出主界面的问题
  5. bash之流程控制for循环及bash命令退出和退出状态码
  6. 、简述global关键字的作用_详解static inline关键字
  7. C++使用链表实现queue之一(附完整源码)
  8. java 设计作业——简单计算器
  9. 单调栈与单调队列简单例题
  10. endnote 参考文献加序号_EndNote上手 | 毕业写论文利器
  11. 手动编辑文件解决冲突_4.2.1 git am patch手动解决冲突的办法
  12. 查看linux内存大小
  13. android----面试基础概括总结
  14. Android退出登录总结
  15. 一年365天,把1.0作为每天的能力值基础,每天原地踏步 则能力值为1.0,如果每天努力一点点则能力值提高1%,每天再努力一点则能力值提高2%,那一年后,这3种行为收获的成果相差多少呢?
  16. NAR|北大/中科院计算所团队发布基因功能富集分析平台KOBAS-i
  17. ll -h和du -sh的区别
  18. Java 实现视频时间维度剪切 | Java工具类
  19. 悬浮按钮和可交互按钮
  20. go 你有50枚金币,需要分配给以下几个人

热门文章

  1. java面试解决项目难题_Java转换难题者,不适合工作(或面试)
  2. junit规则_jUnit:规则
  3. 什么是序列化? 您需要通过示例解释的有关Java序列化的所有知识
  4. 只能在测试中注射吗?
  5. spark restful_使用Spark构建简单的RESTful API
  6. tomcat 正常关闭_Tomcat的带有守护程序和关闭钩子的正常关闭
  7. java 断点_每个Java开发人员应拥有的持久断点
  8. 应用JDK 9 @不推荐使用的增强功能
  9. Apache PDFBox命令行工具:无需Java编码
  10. soa示例_SOA示例应用程序