【问题标题】:Xamarin.Forms - Get miles Between Two Coordinates Using Xamarin.EssentialsXamarin.Forms - 使用 Xamarin.Essentials 在两个坐标之间获取里程
【发布时间】:2021-09-02 07:51:25
【问题描述】:

我正在尝试使用 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);
            

【问题讨论】:

    标签: c# xamarin xamarin.forms gps xamarin.essentials


    【解决方案1】:

    CalculateDistance的最后一个参数是返回类型的单位。

    您正在请求公里

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

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

    double distance = Location.CalculateDistance(location, courtLocation, 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);            
    

    【讨论】:

    • 我将其设置为邮件,但仍然会收到大量数据,而且我知道这些坐标并且彼此相距 30 到 40 英里。
    • 您使用的两个位置是什么?
    • 目的地 - lat:33.887749 Long:-84.345818 CurrentLocation - lat:33.807920 long:-84.046791
    • 谢谢,您如何将行驶时间添加到距离值?
    • time = distance/speed。或者,如果你想要一个“真实”的价值,你需要使用一些提供路线数据的服务
    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多