首页 > 解决方案 > 如何在颤振中将米转换为英里?

问题描述

我猜这里给出的距离是米。输出为距离 7084232.923955827。如何将距离转换为英里?

 var distance = Geolocator.distanceBetween(
        AppString.defaultLat,
        AppString.defaultLat,
        widget.restaurant.latitude ?? 9.9261153,
        widget.restaurant.longitude ?? 78.1140983);
        print('>>>>>>>>>> Distance $distance');
        return distance;

标签: flutter

解决方案


以公里为单位查找两点之间的距离:

  double getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) {
  var R = 6371;
  var dLat = deg2rad(lat2-lat1);
  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;
  return d;
}
double deg2rad(deg) {
  return deg * (Math.pi/180);
}

将公里转换为米

distance = distance * 1000;

将米转换为英里(距离为米)

var mileFromMeter = distance / 1609.344;

推荐阅读