Map 有哪些高效的Geohash边界框覆盖算法?

Map 有哪些高效的Geohash边界框覆盖算法?,map,geolocation,gis,geospatial,geohashing,Map,Geolocation,Gis,Geospatial,Geohashing,我的要求是: 给定lat-lon边界框,返回一组geohash,以便: 集合中的geohash数应较小(1到5个geohash 矩形)如果可能的话 覆盖范围应尽可能接近输入横向边界框 可能的公差约为+/-10%。盖下和/或盖上一点是可以的 它应该是高效的,并且可以在移动设备上执行 我对算法或概念方法最感兴趣。如果没有开源实现,我计划在Android和iOS的Java/Obj-C中实现它。github上的这个Java项目有一个记录在案的算法,可以做你想做的事情。特别是,它在geohash区域的

我的要求是:

给定lat-lon边界框,返回一组geohash,以便:

  • 集合中的geohash数应较小(1到5个geohash
    矩形)如果可能的话
  • 覆盖范围应尽可能接近输入横向边界框 可能的公差约为+/-10%。盖下和/或盖上一点是可以的
  • 它应该是高效的,并且可以在移动设备上执行

我对算法或概念方法最感兴趣。如果没有开源实现,我计划在Android和iOS的Java/Obj-C中实现它。

github上的这个Java项目有一个记录在案的算法,可以做你想做的事情。特别是,它在geohash区域的边界(即极点和-180/180经度线)也能很好地工作

我担心,将geohash的数量保持在很小的范围(1到5个)以及大约10%的容忍度是行不通的。由于只有5个GeoHash,许多矩形将在目标矩形的600%区域被GeoHash覆盖。事实上,对于下面的例子,在面积的10%以内需要667个哈希

以下表格摘自geo项目网站上的自述文件:

作为一个简单的例子,对于比例更大的边界框 屏幕角落处有Schenectady NY和Hartford CT(美国):

以下是不同哈希长度的哈希计数:

m是总散列区域的平方度大小,a是 边界框的区域

长度单位:m/a 1 1 1694 2 1 53 3 4 6.6 4 30 1.6 5 667 1.08 6 20227 1.02
所使用的算法效率高,相关代码不依赖于其他工件,因此部署到支持java(如Android)的移动设备上不会有问题。

感谢您提供的库。如果您有一个坐标,并且希望获得所有包含该坐标指定半径的3个字符精度的Geohash,获取这些地理哈希的方法是什么?嗨,Dave,对于哈希长度为10,半径为10.0公里(10000米)的情况,将生成多少个地理哈希?我试图找到一种算法,它可以从给定点(lat lng)在指定半径内生成所有可能的地理哈希。 length numHashes m/a 1 1 1694 2 1 53 3 4 6.6 4 30 1.6 5 667 1.08 6 20227 1.02