两个地理位置之间的距离(以英尺为单位)

Posted

技术标签:

【中文标题】两个地理位置之间的距离(以英尺为单位)【英文标题】:Distance between two Geo Location in feet 【发布时间】:2015-10-30 10:53:33 【问题描述】:

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

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】:

dist 似乎是以英里为单位的距离。

1 英里等于 1.609344 公里(或 5280 英尺),因此您必须将 dist 乘以 5280

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

【讨论】:

以上是关于两个地理位置之间的距离(以英尺为单位)的主要内容,如果未能解决你的问题,请参考以下文章

地理空间坐标和距离(以公里为单位)

地理空间坐标和以千米为单位的距离

利用SQL计算两个地理坐标(经纬度)之间的地表距离

如何使用LatLng在谷歌地图v2中以公里为单位获取两个地方之间的距离

我如何知道像素相对于相机的位置(以厘米或毫米为单位)?

如何计算一个位置与另一个位置之间的距离/接近度(c#)