如何以xamarin形式查看两个引脚之间的距离并将距离作为一个字符串?

时间:2016-05-25 19:36:58

标签: c# xamarin xamarin.forms

我在地图上有两个长度和纬度的针脚,我希望看到它们之间的距离。 这是我到目前为止所做的。

...&Counties=16&Counties=34&...

我的地图上有两个不同的针脚。我怎样才能看到这两个公里之间的距离?我的目标是制作一个标签,其距离(km)为文本。

(我有一个客户渲染器基础准备好了解决距离功能的唯一方法是通过渲染器)。

2 个答案:

答案 0 :(得分:8)

如果你有两个引脚你有它们的经度和纬度值,那么可以使用下面的代码计算em之间的距离(取自geodatasource.com

private double distance(double lat1, double lon1, double lat2, double lon2, char unit) {
  double theta = lon1 - lon2;
  double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
  dist = Math.Acos(dist);
  dist = rad2deg(dist);
  dist = dist * 60 * 1.1515;
  if (unit == 'K') {
    dist = dist * 1.609344;
  } else if (unit == 'N') {
    dist = dist * 0.8684;
    }
  return (dist);
}

private double deg2rad(double deg) {
  return (deg * Math.PI / 180.0);
}

private double rad2deg(double rad) {
  return (rad / Math.PI * 180.0);
}

所以基本上你只需要一个lat / long值的起始参考,你可以参考其他引脚来显示这个距离作为标签

答案 1 :(得分:0)

Location

内置了一个
public static Void DistanceBetween (Double startLatitude, Double startLongitude, Double endLatitude, Double endLongitude, Single[] results)

也可以使用CoreLocation类

查看此选项

Calculate distance between two positions