我想计算两点之间以及多边形点之间的投影距离。所有坐标都在相同的投影纬度,纬度(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?
答案 0 :(得分:0)
你需要平均地球曲率半径(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公式,但以上是很好的近似值。