GeoPoint等效于笛卡尔坐标系

时间:2016-09-30 18:56:02

标签: python google-app-engine google-cloud-platform

我在一些与笛卡尔坐标对应的搜索文档中有字段xy,我想执行径向搜索,如:

query = '(x * x) + (y * y) < 100'

等于“找到距离(0,0)不到10米的所有东西”

尝试使用特定的表达式失败了QueryError: Failed to parse query,所以我似乎需要采取另一种方法。

是否有内置方法可以执行此操作?

我已经看到GeoPoint字段和distance查询功能几乎可以满足我的需要,问题是我的x,y不是经度和纬度。我曾考虑过试图滥用它 - 将所有坐标映射到一个更小的域,其中lat / long系统非常接近笛卡尔域。这看起来有点哈哈,所以我正在寻找更好的东西。

1 个答案:

答案 0 :(得分:1)

不,没有。

搜索API不支持字段上的任意计算表达式(例如示例中的x * x)。它所支持的内容是枚举here。从笛卡尔坐标到纬度/长场的映射听起来似乎是最合理的方法。

(完全披露:我是团队成员。)