Python从2个GPS坐标计算速度,距离,方向

时间:2014-07-26 06:26:35

标签: python gps coordinates

如何从Python中的2个GPS坐标计算速度,距离和方向(度)?每个点都有纬度,长度,时间。

我在这篇文章中找到了Haversine距离计算:

Calculate distance between 2 GPS coordinates

它还有一个用于速度和方向的Java版本,但它们是公制的,我需要MPH,并且在Python中。

2 个答案:

答案 0 :(得分:2)

尝试使用pyproj。我必须确定处理LOB的项目的距离(以及其他事项),我发现pyproj非常宝贵。 (注意:我的观点是MGRS格式,必须先转换为纬度/经度)

_GEOD = pyproj.Geod(ellps='WGS84')
_MGRS = mgrs.MGRS()
def dist(sp,ep):
   try:
       # convert start point and end point
       (sLat,sLon) = _MGRS.toLatLon(sp)
       (eLat,eLon) = _MGRS.toLatLon(ep)

       # inv returns azimuth, back azimuth and distance
       a,a2,d = _GEOD.inv(sLon,sLat,eLon,eLat) 
    except:
        raise ValueError, "Invalid MGRS point"
    else:
        return d,a

答案 1 :(得分:1)

  1. 通过半身像找出A和B之间的距离。 Haversine Formula in Python (Bearing and Distance between two GPS points)
  2. 查找从A到B(方位)的方向:Determine compass direction from one lat/lon to the other
  3. 假设您知道从A到B的行程时间。速度=距离/时间