7

在我的应用程序中,我想存储地理数据(经度和纬度)。然后我想问“这个地区是哪个地方”。不能使用类似 SQL 的查询,因为 GQL链接文本中的“仅允许在一个属性上使用不等式过滤器”

您是否知道另一种解决方案如何将这些数据存储在 AppEngine 数据库中并使用 GQL 请求它们?

4

2 回答 2

7

我已经成功使用geomodel开源项目在 App Engine 数据存储区中存储和查询纬度/经度数据。它使用geohash来启用对单个属性的查询,它适用于 Python 和 Java,并且由于它是开源的,因此您可以根据需要修改代码以适应您的特定情况。

还值得注意的是,几周前在 Google I/O 上宣布,数据存储区有一天(希望很快)将在内部使用希尔伯特曲线为地理空间和日期查询提供本地支持。这将允许快速查询边界框甚至是任意多边形查询。您可以在线观看该演讲的视频以了解更多详细信息,这是一个非常有趣的讨论。

于 2010-06-03T23:00:47.060 回答
0

您可以使用Geohash将纬度和经度编码为单个字符串,然后只需使用升序和降序属性索引来定位最近的匹配项。

于 2010-06-03T22:46:40.947 回答