postgresql - 在 SQLAlchemy 中打印计算出的距离

标签 postgresql sqlalchemy postgis flask-sqlalchemy

我正在将 Flask-SQLAlchemy 与 Postgres、Postgis 和 GEOAlchemy 结合使用。我能够根据用户提交的点对表中的条目进行排序。我想知道如何返回计算出的距离...

这是我对项目进行排序的方式:

result = Event.query.order_by(func.ST_Distance(Event.address_gps, coordinates_point)).paginate(page, 10).items

for result in results:
    result_dict = result.to_dict()

return result_dict

根据用户位置 (coordinates_point)。我想在 result_dict 的每个结果中添加一个条目,其中还包含订购该项目的距离。我怎么做? func.ST_Distance 返回什么?

我试图在上面的 for 循环中添加:

current_distance = func.ST_Distance(Event.address_gps, coordinates_point)
result_dict['distance'] = current_distance

但这似乎没有用。

最佳答案

您可以使用 column labels

query = Event.query.with_entities(Event, func.ST_Distance(Event.address_gps, coordinates_point).label('distance')).order_by('distance')
results = query.paginate(page, 10).items
for result in results:
    event = result.Event
    distance = result.distance
    result_dict = event.to_dict()
    result_dict['distance'] = distance

关于postgresql - 在 SQLAlchemy 中打印计算出的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35108014/

相关文章:

postgresql - 使用需要同步的两个数据库时如何实现乐观(或悲观)锁定?

sql - 未传入某些参数时如何进行SQL查询过滤?

sql - 更改 postgres 日期格式

python - python中两个列表的比较

python - sqlalchemy:控制从查询中选择的列

postgresql - 将planet.osm.pbf导出到PostgreSql

python - Alembic 可以自动生成列更改吗?

python - 如何扩展SQLAlchemy的association_proxy的 `getter`功能?

ruby-on-rails - 尝试使用 activerecord-postgis-adapter 构建数据库时未定义的方法

postgresql-9.1 - postgres 创建扩展 postgis 错误