Redis之geospatial地理位置

geospatial地理位置

geoadd 添加地理位置

geoadd china:city  120.16 30.24 hangzhou  108.96 34.26 xian
geoadd china:city  106.50 29.53 chongqing  114.05  22.52 shenzhen
geoadd china:city 121.47 31.23 Shanghai 116.40 39.90 beijing

规则:两极无法添加,我们会下载城市数据,直接通过java程序一次性导入!
参数 key (纬度,经度,名称)
有效的经度从-180到180度
有效的纬度从-85.05112878度到85.05112878度
当坐标位置超出上述指定范围时,该命令就会返回一个错误提示。

geopos 获取指定城市的经度和纬度

geopos china:city Shanghai beijing

geodist 返回给定位置之间的距离,如果不存在,则返回一个空。
单位:m,km,mi ft

geodist china:city beijing Shanghai
geodist china:city beijing Shanghai km

georadius 以给定的经纬度为中心,找出某一半径内的元素
我附近人?(获取所有附近人的地址,定位)通过半径来查询

georadius china:city 110 30 1000 km
georadius china:city 110 30 500 km withdist
georadius china:city 110 30 500 km withcoord
georadius china:city 110 30 500 km withcoord withdist count 3

georadiusbymember 找出位于指定元素周围的其他元素

georadiusbymember china:city beijing 1000 km

geohash命令。 返回一个或者多个位置元素的geohash表示
将二维的经纬度转换为一维的11位字符串,如果两个字符串越接近,那么距离越近。


GEO底层的实现原理其实就是zset,我们可以使用zset命令来操作geo

删除位置元素

zrem china:city beijing
zrange china:city 0 -1
posted @ 2022-12-28 00:22  King-DA  阅读(51)  评论(0)    收藏  举报