GeoHash算法

一句话概括:将经纬度编码成字符串。

  • 做法
1. 对经度而言,例如一个位置的经度为30.01242,首先将经度区间切分成两部分,(-90,0)
和(0,90),若处于第一个区间,则第一位编码为0,否则为1;接着再将区间切成两部分(0,45)和(45,90),同理,若若处于第一个区间,则编码为0,否则为1;不断重复这个步骤,例如切分10次,可以获得一个十位数字的二进制编码;
2. 对纬度也同样进行上述操作,同样获得一个十位数字的二进制编码;
3. 将经纬度的二进制编码合并,奇数位放置经度编码,偶数位放置纬度编码,交错放置,获得一个20位数字的二进制编码;
4. 对获得的20位数字二进制编码进行base32编码,每5位二进制数字会获得一个编码,最终获得的编码长度是4位。
  • 性质
对于geohash编码,前缀编码一致的位数越多,两者距离越近。但是反之不成立。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容