空间的网格化
先说明下什么是空间的网格化
将区域一分为二,分别用0,1表示,并将划分的区域继续一分为二的划分下去,如此迭代;
如图,绿色区域便可使用字符串[01]表示;
第一位0,代表蓝色区域的上半部分...第二位1,代表红色区域的下半部分,也就是绿色区域
黄色区域便可使用[010]表示,当降低精度表示时,区域值为[01],也就是绿色区域
字符串长度越长,精度也就越高....http://geohash.org/${hash}
可见,即使在精度并不高的情况下,地理位置也还是符合北京的实际情况的....,mongodb 等中间件用作地理位置的搜索和存储;例如处理附近的人功能....Peano空间填充曲线
空间填充曲线是指二维上穿过单位平方的所有点的连续曲线.
geohash算法使用的是Peano空间填充曲线,填充过程如下图.
当填充空间变多时,会按下图方式扩展.