代碼如下:
import 'dart:math';
void main() {
print("distance between two point is : ${getDistance(
119.9831030000, 30.2340350000, 119.9809580000, 30.2320980000)}");
}
getDistance(double lat1, double lng1, double lat2, double lng2) {
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 * 6378138.0;
}
double rad(double d) {
return d * pi / 180.0;
}
選取兩點作為例子:
- 贊成樂山紅葉北門(Latitude: 119.9831030000, Longitude: 30.2340350000)
- 閑林街道辦事處(Latitude: 119.9809580000, Longitude: 30.2320980000)
運行結果:
distance between two point is : 261.9676660067193
從一個測經(jīng)緯度距離的網(wǎng)站測試的結果如下:

image.png