我需要使用Windows Phone 8.1上的地图控件从用户当前位置找到最近的位置(在这种情况下是医生的办公室)。
我的位置和XML文件(纬度,经度)可用。
是否有一个函数可以返回到我的XML文件中所有点的距离?
有没有办法可以异步或在后台运行该功能?
有没有办法让地图上的图钉动画显示(例如,让它看起来像是跳转)?
答案 0 :(得分:1)
要计算距离,我总是在BasicGeoposition
类上使用以下扩展方法。
要在后台执行此操作,请使用Task.Run(() => )
。
public static double GetDistanceTo(this BasicGeoposition from, double toLatitude, double toLongitude)
{
if (double.IsNaN(from.Latitude) || double.IsNaN(from.Longitude))
{
throw new ArgumentException("On of the given Latitude or Longitudes is not correct");
}
else
{
double latitude = from.Latitude * 0.0174532925199433;
double longitude = from.Longitude * 0.0174532925199433;
double num = toLatitude * 0.0174532925199433;
double longitude1 = toLongitude * 0.0174532925199433;
double num1 = longitude1 - longitude;
double num2 = num - latitude;
double num3 = Math.Pow(Math.Sin(num2 / 2), 2) + Math.Cos(latitude) * Math.Cos(num) * Math.Pow(Math.Sin(num1 / 2), 2);
double num4 = 2 * Math.Atan2(Math.Sqrt(num3), Math.Sqrt(1 - num3));
double num5 = 6376500 * num4;
return num5;
}
}