geohash是一种分层的空间数据结构,将空间网格化.并将二维坐标用一个字符串表示.
一....空间的网格化
先说明下什么是空间的网格化
将区域一分为二,分别用0,1表示,并将划分的区域继续一分为二的划分下去,如此迭代;
如图,绿色区域便可使用字符串[01]表示;
第一位0,代表蓝色区域的上半部分...首先将经度也按一分为二的方式不断迭代划分下去,
按如下图可知,经度116.46可使用字符串[11010 01011]表示
将纬度也按一分为二的方式不断迭代划分下去....可以用一个字符串表示经度和纬度两个坐标
2....Peano空间填充曲线
空间填充曲线是指二维上穿过单位平方的所有点的连续曲线.
geohash算法使用的是Peano空间填充曲线,填充过程如下图.
当填充空间变多时,会按下图方式扩展.