如何检索其他用户(使用实体/端点)发布的附近标记?

时间:2016-06-28 18:07:17

标签: android google-maps google-app-engine

对不起这个问题措辞不好。我想做的事情有点复杂,所以试图把它写进一个问题很难。

我试图找到一种方法来加载/检索其他用户发布的附近标记到GoogleMap上。因此,从您当前的位置,在50公里范围内(让我们说),您可以看到其他用户发布的标记,您可以点击它们,什么不是。

我已经想出如何将标记(纬度和经度以及用户名)存储到实体中。但我不确定如何检索附近的标记并将其加载到地图上。我在Google Cloud Endpoints API上做了很多阅读,我发现了一些关于地理空间查询的信息,您可以使用非常简单的工具来过滤掉超出半径的实体(使用GeoPts)。但是页面顶部有一条通知说:

  

这是地理空间搜索数据存储区的Alpha版本。它不受任何SLA或弃用策略的约束,可能会受到向后不兼容的更改。不建议用于生产。只有白名单应用程序才能访问此功能;目前我们不接受此功能的白名单请求。

所以我不想使用它。我也试图找到能够帮助我完成此类应用程序的稳定的东西(服务)。

非常感谢您的回答!

1 个答案:

答案 0 :(得分:0)

在地理空间查询成为GA之前,您可以使用支持GeoPoint字段和地理空间查询的App Engine搜索API:https://cloud.google.com/appengine/docs/java/search/

缺点是您需要为每个可搜索实体存储文档。在本文档中,您有一个与相应实体的GeoPt值匹配的GeoPoint字段。您可能希望将实体的ID用作文档ID,或者您可以将其存储在Atom字段中。

然后,您可以将您的地理空间查询发送到Search API,后者将返回匹配的文档。对于每个结果,您可以获取包含相应实体ID的Document ID或Atom字段。获得实体ID列表后,您可以在Datastore上执行批量生产,为您提供返回客户端的实体。

它并不理想,但(根据经验)确实有效。

我建议您实施解决方案,以便在需要时可以切换到本地'地理空间查询在数据存储区中受支持时。