Java 用Objectify查询Geopt
我在使用Objectify查询GeoPt字段时遇到了最困难的问题 我确保GeoPt字段有@Index注释 然而,下面的陈述似乎不起作用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方法中的私有字段
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);