点之间以及点与面之间的 Pyproj 距离



我想计算两点之间和多边形之间的投影距离。所有坐标均在同一投影纬度 (WGS84) 下指定。

我使用 pyproj 计算了点和多边形之间的距离,如下所示:

from pyproj import Proj, transform, Geod
geod = Geod(ellps='WGS84')
angle1,angle2,dist1 = geod.inv(wLong1, sLat1, wLong2, sLat2)
#this returns distance in m

我想使用相同的函数来计算点和边界框之间的距离。

bbox = box(wLong1, sLat1, eLong1, nLat1)
point = Point(wLong2,sLat2)
dist2 = (point.distance(bbox))

与第一个示例(以米为单位的 dist1)不同,我认为第二个示例(dist2)以度为单位返回距离。如何像示例 1 一样将此值转换为仪表?

您需要地球

曲率的平均半径 (rm) 进行计算。

from pyproj import Geod
from math import radians
# ... some code
a = Geod.a
b = Geod.b
rm = (2.0*a + b)/3.0   # simple mean radius, as defined by IUGG
rm * radians(dist2)    # your dist in meters

存在更准确的 rm 公式,但以上是很好的近似值。

相关内容

  • 没有找到相关文章

最新更新