Python 使用geopy.distance.distance函数,为什么两个纬度非常不同的点之间的距离相同?
根据我所知道的纬度和经度的工作原理,在相同经度但不同纬度的两点之间的公制距离应该是不同的。然而,这并不是Python库Geopy所反映的。例如:Python 使用geopy.distance.distance函数,为什么两个纬度非常不同的点之间的距离相同?,python,gis,geography,geopy,wgs84,Python,Gis,Geography,Geopy,Wgs84,根据我所知道的纬度和经度的工作原理,在相同经度但不同纬度的两点之间的公制距离应该是不同的。然而,这并不是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
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,而是使用一些局部投影坐标系?是的,根据,geopy默认为测地距离,但也具有WGS84的功能
Geopy可以使用测地距离或大圆距离计算两点之间的测地距离,默认的测地距离可用作函数
是的,根据,geopy默认为测地距离,但也具有WGS84的功能
Geopy可以使用测地距离或大圆距离计算两点之间的测地距离,默认的测地距离可用作函数
没关系,我把坐标顺序倒过来了:
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)已过时,从未用于分析。没关系,我是在向后获取坐标顺序:
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)已过时,从未用于分析。很高兴知道,谢谢。我实际上只是测量了输入,并没有实际测量不同纬度的点(见下面我的答案):DGeodesic(椭球体)和great circle(球体近似,最多偏离0.5%)的距离非常相似,在本测试中可能相同或不同(但彼此略有不同)。很高兴知道,谢谢。我实际上只是测量了输入,并没有实际测量不同纬度的点(见下面我的答案):DGeodesic(椭球体)和great circle(球体近似,最多约0.5%)的距离非常相似,在这个测试中要么相同,要么不同(但彼此略有不同)。事实上,lat,lon是正确的,其他人都是完全错误的,我责怪数学家自己事实上,lat,朗是正确的,其他人都是完全错误的,我责备数学家自己