App Engine搜索api GeoPoint搜索

时间:2015-11-28 15:51:41

标签: java google-app-engine search objectify google-search-api

The App Engine Search API有一个GeoPoint字段。是否可以用它来进行半径搜索?在给定GeoPoint的情况下,查找所有落在特定半径范围内的文档。

截至目前,GeoSpecial Query似乎只是受邀请,所以我正在寻找一个易于理解的简单替代方案。

此外,如果某种方式重要,我使用客观化,而this answer对我来说太复杂了,无法理解如何实现它。

2 个答案:

答案 0 :(得分:0)

对于半径搜索,请使用 proximitySearch 而不是 bestBboxSearchCells (在您的参考网址中使用):

GeocellManager.proximitySearch(Point center, int maxResults, double maxDistance //...

使用方法可以在此链接中查看方法的详细信息: https://github.com/theganyo/javageomodel/blob/ce43c507ff671eb6f0998f7c7d78fd0c3877dbe7/geocell/src/main/java/com/beoui/geocell/GeocellManager.java

示例代码,非常简单: https://github.com/theganyo/javageomodel/blob/master/geocell/src/test/java/com/beoui/utils/HowToUseGeocell.java

答案 1 :(得分:0)

正如Alex Martelli所述,查询字符串"distance(store_location, geopoint(-33.857, 151.215)) < 45000"会有效地产生您要求的结果,将geopoint()替换为您近距离的位置,并用距离替换45000你希望结果如何。

此查询字符串与运行时无关,因此可以以相同的方式用于Python和Java运行时。

如果您使用不同的方法,产品或解决方案,请随时在此处发布。