Xamarin.Forms - 使用 Xamarin.Essentials 在两个坐标之间获取英里数

问题描述

我正在尝试使用 xamarin Essentials 获取不同地点之间的距离。我有起点和目的地的坐标。距离变量等于 2134.13057845059。我需要将此数字转换为英里吗?它应该等于 30 英里左右。

 var location = await Geolocation.GetLastKNownLocationAsync();
            var courtLocation = new Location(Convert.Todouble(item.Latitude),Convert.Todouble(item.Longitude));

            double distance = Location.Calculatedistance(location,courtLocation,distanceUnits.Miles);
            

解决方法

double distance = Location.CalculateDistance(location,courtLocation,DistanceUnits.Kilometers); 的最后一个参数是返回类型的单位。

您正在请求公里

double distance = Location.CalculateDistance(location,DistanceUnits.Miles);
        

如果您想申请里程,请使用

var loc1 = new Location(33.887749,-84.345818);
var loc2 = new Location(33.807920,-84.046791);

// result is 18.023...
double distance = Location.CalculateDistance(loc1,loc2,DistanceUnits.Miles);            

这对我有用,如果您仍然得到不好的结果,我会仔细检查您的输入和转换

character(20) :: a