【问题标题】:How do I query for entities that are "nearby" with the GeoPt property in Google App Engine?如何在 Google App Engine 中使用 GeoPt 属性查询“附近”的实体?
【发布时间】:2010-11-05 05:12:12
【问题描述】:

我应该如何创建一个 GQL 查询,以根据其 GeoPt 属性返回最近的实体(从我当前的位置)?我是否应该创建一个“距离”函数来计算一组距离相当近的实体?

提前谢谢!

【问题讨论】:

    标签: google-app-engine geocoding gql


    【解决方案1】:

    您可以将位置存储在 App Engine 中的 Quadtree 结构中。

    这里有一个关于如何完成的描述:Geographic Queries on Google App Engine

    【讨论】:

      【解决方案2】:

      App Engine 不会专门处理 GeoPt 属性 - 它没有内置的空间索引。但是,有许多第三方库添加了对空间索引的支持。最好的(在我看来)是geomodel

      【讨论】:

      • 未来有支持空间索引的计划吗?
      • @Lipis 我们尚未在路线图上宣布任何内容。
      • 至少不公开.. 我希望你能分享一些世界其他地方不知道的东西.. :) 希望我们能在世界末日前一天看到它那将在 2012 年到来.. :P 继续努力..
      【解决方案3】:

      geohash 在不同的哈希中设置了非常接近的点,因此应该首选另一个或下一层。您可以进行半径、二次内/外形状测试,甚至任何数学形状,并测试该点是否在我们的外部形状内。

      【讨论】:

        【解决方案4】:

        我想我会获得某种挖掘机成就,但这里是:

        我正在寻找解决此问题的方法,但偶然发现了 Google 的官方文档: https://cloud.google.com/appengine/docs/java/search/query_strings#Java_Queries_on_geopoint_fields

        我真的认为 Google 应该在这方面发出更多声音。我觉得很奇怪,他们有一个关于 Python 的课程来做同样的事情,但没有说明如何为 Java 做这件事。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-25
          相关资源
          最近更新 更多