【发布时间】:2016-08-29 17:28:44
【问题描述】:
from django.contrib.gis.geos import Point
p1 = Point(36.74851779201058, -6.429006806692149, srid=4326)
p2 = Point(37.03254161520977, -8.98366068931684, srid=4326)
p1.distance(p2)
Out: 2.5703941316759376
但是这个浮点数的单位是什么?
如果你计算这个距离,那就是229.88 Km。你也可以使用 geopy 获得它:
from geopy.distance import distance
distance(p1, p2)
Out: Distance(229.883275249)
distance(p1, p2).km
Out: 229.88327524944066
我已经读到,如果你将前面的数字除以 111,你可以得到(如此)这个:
(2.5703941316759376 / 111) * 10000
Out: 231.5670388897241 # kilometers
有没有办法只使用 GeoDjango 来获得真实的距离?还是我应该使用 geopy?
【问题讨论】:
-
根据here 的讨论,您应该首先使用球形墨卡托转换您的点(他们正在使用 geodjango)。抱歉,我帮不上忙,我对地理位置不太感兴趣
-
[复制/粘贴我的其他评论] 谢谢!如果我转换点的结果是:288735.5781466976 (288.73 Km) 误差为 20%。这太多了。
标签: python django gis geodjango