直接看代码:
/**
* 计算两点间直线距离
* @param a 表示纬度差
* @param b 表示经度差
* @return 返回的是距离,单位m
*/
getDistance(latFrom, lngFrom, latTo, lngTo) {
var rad = function(d){//计算角度
return d * Math.PI / 180.0;
}
var EARTH_RADIUS = 6378136.49;
var radLatFrom = rad(latFrom);
var radLatTo = rad(latTo);
var a = radLatFrom - radLatTo;
var b = rad(lngFrom) - rad(lngTo);
var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2)));
distance = distance * EARTH_RADIUS;
distance = Math.round(distance * 10000) / 10000;
return parseFloat(distance.toFixed(0));
},
代码是我从腾讯地图的位置服务sdk中摘出来的,稍微整理了一下,因为如果仅是仅是计算个距离,没有必要使用腾讯地图sdk了。
使用示例:
1. 寻物启事小程序 http://market.zhenzikj.com/detail/122.html
网友评论