Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用geopy.distance.distance函数,为什么两个纬度非常不同的点之间的距离相同?_Python_Gis_Geography_Geopy_Wgs84 - Fatal编程技术网

Python 使用geopy.distance.distance函数,为什么两个纬度非常不同的点之间的距离相同?

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

根据我所知道的纬度和经度的工作原理,在相同经度但不同纬度的两点之间的公制距离应该是不同的。然而,这并不是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,而是使用一些局部投影坐标系?

是的,根据,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,朗是正确的,其他人都是完全错误的,我责备数学家自己