gpt4 book ai didi

python - GeoDjango:如何获得两点之间的距离?

转载 作者:行者123 更新时间:2023-11-28 20:41:52 24 4
gpt4 key购买 nike

我的 Profile 模型有这个字段:

location = models.PointField(geography=True, dim=2, srid=4326)

我想使用 GeoDjango 计算这两个 locations 之间的距离(考虑到地球是一个椭球体),以便我可以将这个距离存储在数据库中。

  1. 如何使用 GeoDjango 计算这个距离?
  2. 结果的单位是什么?
  3. 是否有“最佳”方式来存储这些数据?漂浮?十进制?

我查看了以前的类似问题,但没有发现它们有用。没有答案足以解释正在发生的事情或它为什么起作用。

我正在使用 Django 1.8 和 GeoDjango 所需库的最新版本。

谢谢!

最佳答案

根据 Abhyudit Jain 的评论,我正在使用 geopy来计算距离。根据 e4c5 的建议,我将其添加为属性而不是存储它:

from django.contrib.gis.measure import Distance, D
from geopy.distance import distance

@property
def distance(self):
return Distance(m=distance(self.user_a.profile.location, self.user_b.profile.location).meters)

Geopy 默认为 Vincenty’s formulae ,误差高达 0.5%,并且包含我将来会用到的许多其他功能。

上面返回一个 GeoDjango Distance 对象,准备好在测量之间轻松转换。

感谢您的帮助!

关于python - GeoDjango:如何获得两点之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32092584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com