【问题标题】:Using geopy.distance.distance function, why are distances the same between two points at very different latitudes?使用 geopy.distance.distance 函数,为什么纬度不同的两点之间的距离相同?
【发布时间】:2019-07-31 16:23:42
【问题描述】:

鉴于我对纬度和经度如何工作的了解,恒定经度但纬度不同的两点之间的公制距离应该是不同的。然而,这不是 Python 库 Geopy 所反映的。例如:

from geopy.distance import distance

point_a = (0,0); point_b = (1,0)

point_c = (0,75); point_d = (1,75)

print("a - b ", distance(point_a, point_b).m)
print("c - d ", distance(point_c, point_d).m)

这会返回:

>>> a - b 110574.38855779878
>>> c - d 110574.38855779878

我觉得这些距离不应该相同,还是我错过了有关如何计算这些距离的关键信息?距离函数是不是默认不将投影设置为WGS84/4326,而是使用一些局部投影坐标系?

【问题讨论】:

    标签: python gis geography geopy wgs84


    【解决方案1】:

    没关系,我把坐标顺序倒过来了:

    from geopy.distance import distance
    
    point_a = (0,0); point_b = (0,1)
    
    point_c = (75,0); point_d = (75,1)
    
    print("a - b ", distance(point_a, point_b).m)
    print("c - d ", distance(point_c, point_d).m)
    

    现在这会返回我所期望的......

    a - b  111319.49079327357
    c - d  28901.663548048124
    

    我觉得我们只需要同意所有坐标顺序都应该是 (x,y)。 (Lat, Lon) 已过时,从未用于分析。

    【讨论】:

    • 其实,lat,lon是对的,其他人都错了,我自己怪数学家
    【解决方案2】:

    是的,根据docs,geopy 默认为测地距离,但也具有 WGS84 的功能。

    Geopy 可以使用测地距离或大圆距离计算两点之间的测地距离,函数默认为测地距离

    【讨论】:

    • 很高兴知道,谢谢。我真的只是破坏了输入,实际上并没有测量不同纬度的点(请参阅下面的答案)。 :D
    • 测地线(椭球体)和大圆(球体近似,最多相差约 0.5%)距离非常相似,在此测试中可能相同或不同(但彼此之间略有不同其他)。
    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 2011-04-11
    • 2012-10-13
    • 1970-01-01
    • 2015-11-28
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多