我正在 python 中创建一个 appEngine 应用程序,它需要对数据存储数据执行有效的地理空间查询。一个示例用例是,我需要在当前用户的 10 英里半径范围内找到前 20 个帖子。在对我的选择进行了一些研究后,我发现目前实现此类功能的两种最佳方法是:
- 使用 Python 的 GeoModel 库索引 geoHashed 地理点数据
- 使用 Google 较新的 SearchAPI 创建/删除结构化数据文档
从高层次的角度来看,索引 geohashes 并直接对它们执行查询比必须为每个地理空间查询创建和删除文档成本更低,速度更快,但是我也读到 geohashing 可能非常不准确赤道或沿散列算法创建的“断层线”。我很少看到详细对比最佳方法的帖子,我认为堆栈是进行这种对话的好地方,所以我的问题如下:
- 有没有人实现过类似的功能并且对这两种方法都有过积极的经验?
- 哪种方法更便宜?
- 哪个是更快的选择?
- 我还有另一个重要的方法吗?
提前致谢。