gpt4 book ai didi

java - 使用 Objectify 查询 Geopt

转载 作者:行者123 更新时间:2023-11-30 06:13:24 24 4
gpt4 key购买 nike

我在使用 Objectify 查询 GeoPt 字段时遇到了最困难的时间。

我确保有一个关于 GeoPt 字段的 @Index 注释。

然而,下面的语句似乎不起作用

ofy().load()
.type(GeoStat.class)
.filter("geoPt.latitude >=", neLat)
.limit(10);

是否可以在 Objectify 中查询 GeoPt 字段?

最佳答案

数据存储不支持以这种方式查询GeoPt。如果您希望查询纬度,请单独对其进行索引(可能写入 @OnSave 方法中的私有(private)字段)。但是,如果您尝试执行地理空间查询(即包含在矩形中),请注意您不能执行两个不等式过滤器(范围内的纬度、范围内的经度)。

好消息是最近谷歌增加了直接对数据存储执行地理空间查询的能力:

https://cloud.google.com/appengine/docs/java/datastore/geosearch

GeoPt center = new GeoPt(latitude, longitude);
double radius = valueInMeters;
Filter f = new StContainsFilter("geoPt", new Circle(center, radius));
ofy().load().type(GeoStat.class).filter(f);

请注意,数据存储的地理空间搜索目前是 Alpha 版本,已关闭邀请。因此,虽然您可以让地理空间搜索在本地运行,但它仍然不能用于生产。请参阅:Google App Engine › GeoSpatial Alpha Invite

关于java - 使用 Objectify 查询 Geopt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31920968/

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