gpt4 book ai didi

django - 如何计算两个PointField之间的距离?

转载 作者:行者123 更新时间:2023-12-03 20:34:09 25 4
gpt4 key购买 nike

我在 Django 中使用 Postgis 来存储地理点。我有一个像下面这样的模型:

from django.contrib.gis.db import models
class Event(models.Model)
position = models.PointField()

我有两个事件(ev1,ev2)。这是每个的位置值:
SRID=4326;POINT (-73.6335140000000052 45.5472019999999986)
SRID=4326;POINT (-73.6267909999999972 45.5459189999999978)

我的目标是获得这两点之间的距离(以米为单位)。如果我做:
ev1.position.distance(ev2.position)

我收到 0.006844327432269004
如何以米为单位转换此值?

谢谢!

最佳答案

我能够使它工作,但只能通过查询集。在这里,我想获得事件 3 和所有其他事件之间的距离:

from django.contrib.gis.measure import Distance

p2 = Event.objects.get(id=3).position
for event in Event.objects.all().exclude(id=3).annotate(distance=Distance('position', p2)):
print('{0} - {1}'.format(event.id, event.distance.m))

“位置”是 PointField 的名称

关于django - 如何计算两个PointField之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020805/

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