在Java(https://cloud.google.com/appengine/docs/java/datastore/geosearch)下似乎有地理空间查询支持,但在Go下似乎没有任何文档可以这样做。将google.golang.org/appengine替换为“geo”,只会构造和验证GeoPoint值。

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

编辑:

似乎仅对Java提供了有限的支持:

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

最佳答案

目前,Datastore完全不支持此功能。使用geohhes:https://github.com/gansidui/geohash/blob/master/geohash.go。它将来回的地理空间存储/ RTREE支持问题简化为字符串前缀搜索。

它允许您派生散列描述特定位置的哈希,然后可以使用此字符串并从右侧连续删除字符(并针对您的地点列表及其剩余的地理哈希进行字符串前缀搜索)以查找附近的地点您的主要位置并向外扩展。

geohash字符串的每个相邻字符之间的地理精度可预测,因此您可以使用此精度,也可以使用主点与 map 窗口的拐角纬度/经度之间的 public 前缀字节来标识应在其中出现的所有位置它。

07-26 02:46