如何在AppEngine中存储和搜索GeoData?

发布于 2024-09-04 12:29:15 字数 297 浏览 6 评论 0原文

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

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

In my application, I want to store geographical data (longitude and latitude). Then I want to ask "which place is in this region". SQL-like query can't be used, since "Inequality Filters Are Allowed On One Property Only" in GQL link text

Do you know about another solution how to store these data in AppEngine database and ask for them with GQL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空袭的梦i 2024-09-11 12:29:15

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

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

I've had success using the geomodel open-source project for storing and querying lat/lon data in the App Engine datastore. It uses a geohash to enable querying on a single property, it's available for both Python and Java and since it's open source you can modify the code to fit your particular case if need be.

It's also worth noting that it was announced at Google I/O a couple weeks back that the datastore would someday (hopefully soon) provide native support for geospatial and date queries, using a Hilbert curve internally. This would allow fast querying for bounding box or even in arbitrary polygon queries. You can watch the video of that talk online for more detail, it's a pretty interesting discussion.

任性一次 2024-09-11 12:29:15

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

You can use Geohash to encode latitude and longitude into a single string, and then just use an ascending and descending property index to locate the nearest matches.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文