Java 用Objectify查询Geopt

Java 用Objectify查询Geopt,java,google-app-engine,objectify,geopoints,Java,Google App Engine,Objectify,Geopoints,我在使用Objectify查询GeoPt字段时遇到了最困难的问题 我确保GeoPt字段有@Index注释 然而,下面的陈述似乎不起作用 ofy().load() .type(GeoStat.class) .filter("geoPt.latitude >=", neLat) .limit(10); 在Objectify中是否可以查询GeoPt字段?数据存储不支持以这种方式查询GeoPt。如果您希望查询纬度,请单独索引它(可能写入@OnSave方法中的私有字段

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

我确保GeoPt字段有@Index注释

然而,下面的陈述似乎不起作用

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

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

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

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


请注意,数据存储的地理空间搜索目前是Alpha版本,因邀请而关闭。因此,虽然您可以在本地使用地理空间搜索,但它仍然不能用于生产。请参阅:

保存实体时是否有@Index?稍后添加它将不会为已经存在的实体创建索引。@在插入任何记录之前,索引已就位。这看起来应该可以工作,但Android Studio“无法解析StContainsFilter”我不知道您使用的应用引擎插件是哪个版本,但是我使用的是1.9.18版本,Android Studio没有解析StContaisFilter。我将它更新为
dependencies{classpath'com.google.appengine:gradle-appengine-plugin:1.9.30'}
,它成功了。转到您的后端gradle并检查您的版本。我在.filter()方法中得到一个错误:ofy().load().type(GeoStat.class)。filter(f)-filter()接受一个字符串,您是指filterKey(对象值)吗?这是您要查找的重载:
公共查询筛选器(filter filter)数据存储的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);