C# 如何在xamarin形式中查看两个管脚之间的距离,并以字符串的形式获取距离?

C# 如何在xamarin形式中查看两个管脚之间的距离,并以字符串的形式获取距离?,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我在地图上有两个大头针,分别是长的和纬度的,我想看看它们之间的距离。 这就是我目前所拥有的 var myPin = new Pin (); myPin.Label = "pin1"; myPin.Address = "test1"; myPin.Position = new Position(37.797513, -122.402068); myPin.Label = "pin2"; myPin.A

我在地图上有两个大头针,分别是长的和纬度的,我想看看它们之间的距离。 这就是我目前所拥有的

        var myPin = new Pin ();
        myPin.Label = "pin1";
        myPin.Address = "test1";
        myPin.Position = new Position(37.797513, -122.402068);

        myPin.Label = "pin2";
        myPin.Address = "test2";
        myPin.Position = new Position(37.7, -122.3);

        mymap.Pins.Add(myPin);
我的地图上有两个不同的图钉。我怎样才能看到这两个物体之间的距离(以公里为单位)?我的目标是制作一个以距离(km)为文本的标签


(我有一个客户渲染器库,以防解决距离函数的唯一方法是通过渲染器)。

如果你有两个管脚,你有它们的经度和纬度值,因此可以使用以下代码计算em之间的距离(取自)


因此,基本上,您只需要一个lat/long值的起始引用,从这里您将引用进一步的pin,以将此距离显示为标签

类中内置了一个

也可以使用CoreLocation类查看此选项


您是否只想在点之间画一条线?或者计算一条路线?或者干脆放下一个有距离的标签?一个有距离的标签。更新了关于它的帖子,使其更清晰标准表单地图不支持这一点。您需要为此创建自定义渲染器。您可能还需要使用本机平台方法来计算距离。我有一个自定义渲染器(我现在使用它作为两点之间的线,并且在管脚上还有一个图像),所以我已经准备好了该底座。是否有任何有用的链接可以指导我如何获取两点之间的距离?在iOS中,使用CLLocation DistanceFrom()。在Android中,Location distance between()是一个有点困难的数学运算。我无法解决的是返回的长度单位(dist)。如何将“双距离”转换为公里?
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);
}
public static Void DistanceBetween (Double startLatitude, Double startLongitude, Double endLatitude, Double endLongitude, Single[] results)