微信小程序中通过两点经纬度计算距离(KM)

此博客内容为转载,主要讲述在微信小程序里,如何通过两点经纬度来计算距离,单位为千米,聚焦于微信小程序的相关信息技术应用。
### 微信小程序计算两点距离的方法 在微信小程序中,可以利用高德地图 API 或者腾讯地图 API 来获取两个地理坐标点之间的实际路径距离。下面介绍一种基于高德地图 SDK 的方法来实现这一功能。 #### 使用高德地图SDK计算两地点间的驾车路线长度 首先,在项目页面的 JSON 文件里声明所需权限以及引入高德插件: ```json { "permission": { "scope.userLocation": { "desc": "你的位置信息将用于显示周边服务" } }, "usingComponents": {}, "plugins": { "amapPlugin": { "version": "1.0", "provider": "wx6b4bf7c9d8e3aebf" } } } ``` 接着是在 JavaScript 中调用接口请求两地间最短行车线路的距离数据[^1]: ```javascript const amapFile = require(plugin://amap-wx); // 引入高德地图插件 function getDrivingDistance(startLat, startLng, endLat, endLng){ const key = 'your_amap_api_key';// 替换成自己的key const myAmapFun = new amapFile.AMapWX({key}); wx.getLocation({ type: 'gcj02', // 返回可以用于AMap服务的火星坐标系下的经纬度值 success (res) { let origin = `${startLng},${startLat}`; let destination = `${endLng},${endLat}`; myAmapFun.getRegeo({ location: res.longitude + ',' + res.latitude, success(data){ console.log('当前位置:', data[0]); myAmapFun.getDriveRoute({ origin, destination, success(routeData){ let paths = routeData.paths; if(paths.length>0){ let distanceMeters = paths[0].distance; // 获取到的是米单位的结果 let distanceKm= `${(distanceMeters/1000).toFixed(2)}Km`; // 将其转换为千米并保留两位小数 console.log(`从起点至终点的路程大约为${distanceKm}`); // 可在此处更新UI界面展示给用户看 }else{ console.error('未能找到有效路径'); } }, fail(errorInfo){ console.error('查询失败:', errorInfo); } }); }, fail(err){ console.error('定位失败:', err); } }) } }); } ``` 此函数接收四个参数作为输入:起始点纬度 `startLat` 和经度 `startLng`, 终点纬度 `endLat` 和经度 `endLng`. 它会先通过 `wx.getLocation()` 函数获得当前设备的位置信息(这里假设是从本地发起),再向高德服务器发送一次逆地理编码请求确认具体地址;最后使用 `getDriveRoute()` 接口得到两者之间推荐行驶路线的信息,并从中提取出总里程数值进行处理后返回给开发者以便进一步操作或呈现给最终使用者查看.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值