【发布时间】:2015-11-12 13:56:26
【问题描述】:
我的Profile 模型有这个字段:
location = models.PointField(geography=True, dim=2, srid=4326)
我想使用 GeoDjango 计算这两个locations 之间的距离(考虑到地球是一个球体),以便我可以将这个距离存储在数据库中。
- 如何使用 GeoDjango 计算这个距离?
- 结果的单位是什么?
- 是否有“最佳”方式来存储这些数据?漂浮?十进制?
我已经查看了以前的类似问题,但没有发现它们有用。没有答案能充分解释发生了什么或为什么会起作用。
我正在使用 Django 1.8 和 GeoDjango 所需库的最新版本。
谢谢!
【问题讨论】:
-
对不起,我不知道 GeoDjango,谷歌搜索了几分钟并没有让我找到明确的解决方案。但是您可能会发现GeographicLib 很有用。它使用非常好的算法来计算球体距离,比旧的 Vincenty 公式要好得多。 FWIW,GeographicLib 的作者,C. F. F. Karney,是维基百科Geodesics on an ellipsoid 的主要贡献者。
-
感谢 Abhyudit Jain,这导致了解决方案。感谢 PM 2Ring 的建议 - GeographicLib 目前看起来有点复杂,所以我选择了更简单的东西。
标签: python django location distance geodjango