AppEngine:Go 下的地理空间查询

AppEngine: Geospatial queries under Go

Java (https://cloud.google.com/appengine/docs/java/datastore/geosearch) 下似乎有地理空间查询支持,但在 Go 下似乎完全没有做同样事情的文档。 Grepping google.golang.org/appengine for "geo" 除了 GeoPoint 值的构造和验证之外什么都不渲染。

由于 Java 支持此功能,因此 API 支持显然必须存在。有没有人对此有任何经验或建议?谢谢

编辑:

似乎只为 Java 提供了有限的支持:

http://startup-with-gae.blogspot.com/2016/01/geospatial-queries-with-google-cloud.html

官方数据存储目前完全不支持它。使用 geohashes: https://github.com/gansidui/geohash/blob/master/geohash.go 。它将此从 ma geospatial-storage/RTREE 支持问题减少到字符串前缀搜索。

它允许您派生一个描述特定位置的散列,然后您可以获取该字符串并连续删除右侧的字符(并对您的位置列表进行字符串前缀搜索和 他们 geohashes 与剩下的)找到你主要位置附近的地方并向外扩展。

geohash 字符串的每个相邻字符之间有可预测的地理精度,因此您可以使用这个或地图的主要点和角 latitude/longitude 之间的公共前缀字节 window 来识别所有应该出现在其中的地方。