当前位置: 首页 > 网络应用技术

重新学习(12)-Geohash

时间:2023-03-06 16:19:30 网络应用技术

  REID在版本3.2后增加了地理地理模块

  该行业相对常见的地理距离排序算法是GeoHash算法,Redis还使用GeoHash算法。GeoHash算法将两个尺寸的Latitude数据映射到一个尺寸的integer,以便所有元素都将所有元素安装在一条线上,并将其安装在一条线上,并将两个维度坐标与一个维点之间的距离将接近。

  您可以想象蛋糕方法。想像您面前的方蛋糕。两把刀都分为四个小方块。这四个小正方形可以标记为00、01、10和11。目前,每个小正方形可以用4位的二进制整数来表示,然后继续切割,正方形将变得越来越小,二进制整数将变得越来越长,精度将越来越高。

  GeoHash算法将继续制作一个base32编码(0?9,a?z,remove a,i,l,o:四个字母)。将其放在ZSET中,ZSET的值是元素的关键,得分是GeoHash的52位整数值。尽管ZSET的分数是浮点,但可以将其存储在没有损坏的情况下,而52 -bit Integer则可以存储值。

  ZSET用于GEO存储结构,这意味着我们可以使用ZSET相关指令操作地理数据,因此可以直接使用元素删除指令来使用ZRM指令

  大地师指令之间的距离可用于计算两个元素之间的距离。

  获取元素位置Geopos指令可以获得集合中任何元素的纬度和经度坐标,您可以获得多个

  我们观察到,Geoadd的纬度和经度和Geoadd的坐标有一些错误,因为GeoHash在两个维坐标上的一个维映射受损。映射通过映射的重新存放物值将导致相对较小的差异。对于“附近人”的功能,此错误是完全可以接受的

  对于元素的哈希值,您可以将base32编码值用于<a a

  原始:https://juejin.cn/post/7097161636007378975