测量两个位置之间的距离

Mah*_*poo 0 dart flutter

Flutter 有没有办法获取两个位置之间的距离?

cmd*_*ter 5

您可以通过 HaverSine 公式求出距离,在 dart 中实现为:

import'dart:math' as Math;
void main()=>print(getDistanceFromLatLonInKm(73.4545,73.4545,83.5454,83.5454));



double getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) {
  var R = 6371; // Radius of the earth in km
  var dLat = deg2rad(lat2-lat1);  // deg2rad below
  var dLon = deg2rad(lon2-lon1); 
  var a = 
    Math.sin(dLat/2) * Math.sin(dLat/2) +
    Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * 
    Math.sin(dLon/2) * Math.sin(dLon/2)
    ; 
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
  var d = R * c; // Distance in km
  return d;
}

double deg2rad(deg) {
  return deg * (Math.pi/180);
}
Run Code Online (Sandbox Code Playgroud)

输出:

1139.9231530436646
Run Code Online (Sandbox Code Playgroud)

来源为 Javscript,归功于 Chuck。