这两天在做打卡系统的时候 需要判断用户是否进入打卡范围 ,根据两个经纬度(本地定位经纬度、设置的打卡经纬度) 计算出之间的距离 ,可使用如下公式 算出距离 这里单位是 米
/// 根据两点经纬度 使用math 算出之间距离
/// 导入import 'dart:math';
_getDistance(double lat1, double lng1, double lat2, double lng2) {
/// 单位:米
/// def :地球半径
double def = 6378137.0;
double radLat1 = _rad(lat1);
double radLat2 = _rad(lat2);
double a = radLat1 - radLat2;
double b = _rad(lng1) - _rad(lng2);
double s = 2 * asin(sqrt(pow(sin(a / 2), 2) + cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2)));
return (s * def ).roundToDouble();
}
double _rad(double d) {
return d * pi / 180.0;
}