制作打卡的功能,从GPS获取到坐标,公司的坐标,计算中间的距离的方法:
//计算地图2个坐标之间的距离
function computeDistance(startCoords, destCoords) {
var startLatRads = degreesToRadians(startCoords.latitude);
var startLongRade = degreesToRadians(startCoords.longitude);
var destLatRads = degreesToRadians(destCoords.latitude);
var destLongRads = degreesToRadians(destCoords.longitude);
var Radius = 6371; 地球的半径(单位:公里)
var distance = Math.acos(Math.sin(startLatRads) * Math.sin(destLatRads) + Math.cos(startLatRads) * Math.cos(destLatRads) * Math.cos(startLongRade - destLongRads)) * Radius;
return distance;
}
function degreesToRadians(degrees) {
var radians = (degrees * Math.PI) / 180;
return radians;
}
//用法
var result = computeDistance({ //km
latitude: company_lat,
longitude: company_lon