【问题标题】:Google App Engine and Google Maps Proximity Search in PythonPython 中的 Google App Engine 和 Google Maps Proximity Search
【发布时间】:2011-05-12 17:28:36
【问题描述】:

由于 GQL 引擎的限制,有人建议想要执行邻近搜索的人应该使用建议的地理模型找到绕过这些限制的方法。这可能不是一个非常优雅或快速的解决方案,但有什么可以阻止任何人从这里使用该算法:

SELECT id, ( 3959 * acos( cos( radians(lat_t) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(lng_t) ) + sin( radians(lat_t) ) * sin( radians( lat ) ) ) ) AS distance FROM Stores HAVING distance < 25 ORDER BY distance

作为计算距离的简单方法。 IE。我们只需通过循环遍历数据存储中的每条记录,手动计算每一对 (lat, lng) 和 (lat_t, lng_t) 的距离,从而获得目标距离内所有记录的 id求助于使用 HAVING 命令?总而言之,我们会做一个简单的 GQL 查找来获取所有记录并遍历所有 lng/lat 对并与我们的目标值进行比较。

http://code.google.com/apis/maps/articles/geospatial.html

【问题讨论】:

    标签: python google-app-engine maps


    【解决方案1】:

    显然,sn-p 是某种 SQL 风格,与 Datastore 更简单的基于索引的查找不兼容。

    如果您的意思是您只想获取所有实体并使用 python 在内存中执行距离计算;那么这当然是可能的,但您将仅限于在相对较小的一组实体上执行此操作或使用任务分批执行此操作。

    看看专为这个用例设计的GeoModel

    【讨论】:

      猜你喜欢
      • 2019-12-30
      • 1970-01-01
      • 2023-04-04
      • 2011-05-04
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      相关资源
      最近更新 更多