微信小程序计算两点之间的距离(Haversine公式)
作者:野牛程序员:2024-09-12 11:11:41小程序阅读 3194
微信小程序计算两点之间的距离(Haversine公式)
基于Haversine公式计算两个经纬度之间的最短距离。该公式用于在球体表面上计算两点之间的最短路径,即大圆距离。换句话说,计算结果是两个地理位置的“空中直线距离”,不考虑实际的道路、建筑等障碍。
如果需要计算沿着道路的实际行驶距离,则需要调用第三方地图服务(如腾讯地图或高德地图的路线规划API)来获取更准确的行驶距离,而不是使用当前的纯数学公式。
// 计算两点之间的距离(Haversine公式) getDistance(lat1, lng1, lat2, lng2) { const radLat1 = this.rad(lat1); const radLat2 = this.rad(lat2); const a = radLat1 - radLat2; const b = this.rad(lng1) - this.rad(lng2); const s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); const earthRadius = 6378137; // 地球半径,单位为米 return s * earthRadius; }, // 弧度转换 rad(d) { return d * Math.PI / 180.0; }
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892