【发布时间】:2021-06-15 16:04:25
【问题描述】:
所以我一直在使用安装了扩展 Postgis 的 Postgres 数据库,然后使用 Django 设置在 Leaflet OpenStreetMap 上绘制空间数据。每当您与数据库通信时,将我的 sql 查询转换为 Django 正在使用的数据库功能有点困难。通常我似乎缺少 Postgis 函数,例如 ST_LineCrossingDirection 或 ST_FrechetDistance。 如何在 Django 中将这些函数与 .annotate 和 .filter 一起使用,而无需编写自定义 sql 查询并执行它们? 我也尝试从 Django 研究 F() 和 Func() ,但我认为这并不能解决我的问题,因为它似乎使用了内置的聚合函数。我还尝试在注释函数中执行 RawSQL 以执行函数 ST_LineCrossingDirection 但它需要我编写一个 WHERE 子句并且条件是我不知道的,直到我到达我正在使用的 filter() 调用intersects() 在两个几何之间。 无论如何..如果有人知道如何使用我认为缺少的 Postgis 功能,请告诉我。因为我的代码变得非常混乱和无效。
谢谢,感谢所有帮助!
【问题讨论】:
标签: django postgresql postgis geodjango