Haversine公式来计算两个经纬度点之间的距离
import 'dart:math' as math;
double getDistance( double lat1, double lng1, double lat2, double lng2 ) { const R = 6371; // 地球半径,单位为公里 double dlat = math.pi / 180 * (lat2 - lat1); double dlng = math.pi / 180 * (lng2 - lng1); double a = math.sin(dlat / 2) * math.sin(dlat / 2) + math.cos(math.pi / 180 * lat1) * math.cos(math.pi / 180 * lat2) * math.sin(dlng / 2) * math.sin(dlng / 2); double c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)); double d = R * c; // 单位为公里 return d; }