C# 两个地理位置之间的距离(英尺)

C# 两个地理位置之间的距离(英尺),c#,.net,google-maps,geolocation,geometry,C#,.net,Google Maps,Geolocation,Geometry,如何以不同的单位找出两个位置之间的差异。我已经找到了以公里和英里为单位计算的方法,但不确定英尺 private double Distance(double lat1, double lon1, double lat2, double lon2, int unit) { double theta = lon1 - lon2; double dist = Math.Sin(Deg2rad(lat1)) * Math.Sin(Deg2rad(lat2)) +

如何以不同的单位找出两个位置之间的差异。我已经找到了以公里和英里为单位计算的方法,但不确定英尺

private double Distance(double lat1, double lon1, double lat2, double lon2, int 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 == GeoFence.RadiusUnits.Kilometers.GetHashCode()) 
      {  
        dist = dist * 1.609344;  //kilometers
      } 
      else if (unit ==  GeoFence.RadiusUnits.Feet.GetHashCode()) 
      {  
        //Here I need to calculate distance in feet
      } 
      return (dist);  //By default the distance is in statute miles 
    } 

我不确定1.609344以公里为单位计算它背后的逻辑似乎是以英里为单位的距离

1英里等于1.609344公里(或5280英尺),因此您必须以5280英里的距离多向行驶

  else if (unit ==  GeoFence.RadiusUnits.Feet.GetHashCode()) 
  {  
    dist = dist * 5280;
  }