Xamarin.Forms - 使用 Xamarin.Essentials 在两个坐标之间获取里程
Posted
技术标签:
【中文标题】Xamarin.Forms - 使用 Xamarin.Essentials 在两个坐标之间获取里程【英文标题】:Xamarin.Forms - Get miles Between Two Coordinates Using 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);
【问题讨论】:
【参考方案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
。或者,如果你想要一个“真实”的价值,你需要使用一些提供路线数据的服务以上是关于Xamarin.Forms - 使用 Xamarin.Essentials 在两个坐标之间获取里程的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms error MSB6006: “java.exe”已退出,代码为 2 解决办法
Xamarin Forms - 从 2017 年到 2019 年更新 Visual Studio 后 iOS 上的奇怪行为
如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色