flutter 例如打卡 或接单范围 、根据 经纬度 计算出两点之间的 距离

这两天在做打卡系统的时候 需要判断用户是否进入打卡范围 ,根据两个经纬度(本地定位经纬度、设置的打卡经纬度) 计算出之间的距离 ,可使用如下公式 算出距离 这里

这两天在做打卡系统的时候 需要判断用户是否进入打卡范围 ,根据两个经纬度(本地定位经纬度、设置的打卡经纬度) 计算出之间的距离 ,可使用如下公式 算出距离 这里单位是 米

  /// 根据两点经纬度 使用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;}