说明
常应用于
附近的人
、两地距离计算
、朋友圈定位
…
中文文档:http://redis.cn/commands/geoadd.html
将有效的地理空间位置
(经度,纬度,名称)添加到指定的 Key 中,这些 Key 会存到 Hset(有序集合)
中。
- 有效的
经度
从-180
度到180
度。 - 有效的
纬度
从-85.05112878
度到85.05112878
度。 - 该类型的
底层实现
是Hset
(有序聚合),所以也能使用有序集合的命令操作
常用 六大命令
地理位置的坐标
可以在
网络上 下载
完整的信息进行添加
geoadd key longitude latitude member [longitude latitude member ...]
127.0.0.1:6379> geoadd china:city 104.065735 30.659462 chengdu (integer) 1 127.0.0.1:6379> geoadd china:city 116.405285 39.904989 beijing 114.085947 22.547 shenzhen (integer) 2
获取地理位置的坐标
geopos key member [member]
127.0.0.1:6379> geopos china:city beijing 1) 1) "116.40528291463851929" 2) "39.9049884229125027" 127.0.0.1:6379> geopos china:city beijing shenzhen 1) 1) "116.40528291463851929" 2) "39.9049884229125027" 2) 1) "114.08594459295272827" 2) "22.54699993773966327"
获取两地距离
key member1 member2 [unit]
- [unit]:m(米)、km(千米)、mi(英里)、ft(尺)
127.0.0.1:6379> geodist china:city beijing shenzhen km "1943.0240"
获取附近的位置集合
需要给 ==
经纬度
== 通过半径
来返回位置集合
georadius key longitude latitude raidus m|km|ft|mi [withcoord][withdist][withhash][COUNT count][asc|desc][store key][storedist key]
下列可选参数
是在返回结果
上嵌套一层
显示
- [withcoord]:返回结果
显示位置经纬度
- [withdist]:返回结果
显示距离
- [COUNT count]:指定
返回结果
的数量
- [withhash]:返回结果
哈希
- [asc|desc]:根据中心,
由近到远
|由远到近
返回结果
127.0.0.1:6379> georadius china:city 110 30 1000 km 1) "chengdu" 2) "shenzhen" 127.0.0.1:6379> georadius china:city 110 30 1000 km withcoord withdist withhash asc count 2 1) 1) "chengdu" 2) "574.3396" 3) (integer) 4026137794127754 4) 1) "104.06573742628097534" 2) "30.65946118872339099" 2) 1) "shenzhen" 2) "923.4929" 3) (integer) 4046433733682118 4) 1) "114.08594459295272827" 2) "22.54699993773966327"
获取附近的位置集合
需要给 ==
位置
== 通过半径
来返回位置集合
georadiusbymember key member raidus m|km|ft|mi [withcoord][withdist][withhash][COUNT count][asc|desc][store key][storedist key]
下列可选参数
是在返回结果
上嵌套一层
显示
- [withcoord]:返回结果
显示位置经纬度
- [withdist]:返回结果
显示距离
- [COUNT count]:指定
返回结果
的数量
- [withhash]:返回结果
哈希
- [asc|desc]:根据中心,
由近到远
|由远到近
返回结果
127.0.0.1:6379> georadiusbymember china:city beijing 2000 km 1) "chengdu" 2) "shenzhen" 3) "beijing" 127.0.0.1:6379> georadiusbymember china:city beijing 2000 km withcoord withdist withhash asc count 2 1) 1) "beijing" 2) "0.0000" 3) (integer) 4069885370671010 4) 1) "116.40528291463851929" 2) "39.9049884229125027" 2) 1) "chengdu" 2) "1517.9907" 3) (integer) 4026137794127754 4) 1) "104.06573742628097534" 2) "30.65946118872339099"
获取位置HASH
将
二维
经纬度信息,转换成一维
字符串,返回的11位哈希值字符串
越相似,说明距离越近
geohash key member [member]
127.0.0.1:6379> GEOHASH china:city beijing chengdu shenzhen 1) "wx4g0b7xrt0" 2) "wm6n2j6k730" 3) "ws10k0dcg10"
版权声明:《 【redis】三大特殊类型 geospatial - 地理空间 》为明妃原创文章,转载请注明出处!
最后编辑:2022-1-24 11:01:54