【问题标题】:How to retrieve nearby markers posted by other users (with Entities/Endpoints)?如何检索其他用户发布的附近标记(使用实体/端点)?
【发布时间】:2016-06-28 18:07:16
【问题描述】:

很抱歉,这个问题措辞不当。我想做的事情有点复杂,所以很难把它变成一个问题。

我正在尝试找到一种方法将其他用户发布的附近标记加载/检索到 GoogleMap 上。因此,从您当前的位置,在 50 公里半径范围内(比方说),您可以看到其他用户发布的标记,您可以点按它们等等。

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

这是用于数据存储的地理空间搜索的 Alpha 版本。它不受任何 SLA 或弃用政策的涵盖,并且可能会受到向后不兼容的更改的影响。不建议用于生产用途。此功能仅适用于列入白名单的应用程序;目前我们不接受此功能的白名单请求。

所以我不想使用它。我也在尝试找到可以帮助我处理此类应用程序的稳定的东西(服务)。

非常感谢您的回答!

【问题讨论】:

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


    【解决方案1】:

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

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

    然后,您可以将地理空间查询发送到搜索 API,该 API 将返回匹配的文档。对于每个结果,您可以获得包含相应实体 ID 的 Document ID 或 Atom 字段。获得实体 ID 列表后,您可以在 Datastore 上批量获取密钥,将实体返回给您的客户端。

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

    我建议您实施您的解决方案,以便在需要时可以在 Datastore 支持时切换到“本机”地理空间查询。

    【讨论】:

    • 感谢您的回答!无论如何我可以通过消息与您联系吗?时不时我有一些关于 Endpoints 的快速问题要问,但我很少找到答案。
    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 2018-01-26
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    相关资源
    最近更新 更多