gpt4 book ai didi

sqlalchemy - 如何按距查询点的距离对地理空间查询进行排序

转载 作者:行者123 更新时间:2023-12-04 00:40:12 26 4
gpt4 key购买 nike

我尝试在网上搜索此问题,但无济于事。似乎是一项基本任务。我通过带有 Geoalchemy 的 SQLAlchemy 使用 PostGresql 来进行地理空间查询。从技术上讲,我使用的是 Flask-SQLAlchemy。我可以做一个地理空间查询。例如:

from geoalchemy2 import func
cls.db.session.query(cls).filter(func.ST_DWithin(cls.geoLoc, geo, meters))

哪里 cls是我正在查询的类(class)。 geoGeography表示查询中心的点和 meters是返回结果的最大距离。此查询有效,但以任意顺序返回结果。我希望它们以增加(减少也可以)与查询点的距离返回。

我假设我需要使用 .order_by(...)在查询结束时,但我不知道该放什么。

最佳答案

好吧,我想通了,但是哇,这并不明显,特别是如果您不熟悉 Geoalchemy2。

在我上面的例子中,你必须坚持:

.order_by(func.ST_Distance(cls.geoLoc, geo))

到我的问题中的代码的末尾。基本上, ST_Distance是一个函数,它接收两点并返回它们之间的距离。所以 cls.geoLoc指的是表中的每个有问题的对象和 geo是我按距离排序的中心。这基本上计算了每个元素到 geo 的距离。然后按它排序。

关于sqlalchemy - 如何按距查询点的距离对地理空间查询进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29013805/

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