Redis Geospatial 地理位置 类型
进度纬度查询工具
规则; 两极无法直接添加,一般会下载城市数据,直接通过java程序一次性导入
1.geoadd 将指定的地理空间位置(经度、纬度、名称)添加到指定的key中
将指定的地理空间位置(经度、纬度、名称)添加到指定的key中
GEOADD 空间 经度 纬度 城市名称 .... 经度 纬度 城市名称 GEOADD china:city 121.48941 31.40527 shanghai
2.geopos 从key里返回所有给定位置元素的位置(经度和纬度)
从key里返回所有给定位置元素的位置(经度和纬度)
GEOPOS 空间 城市名称 GEOPOS china:city shanghai
3.geodist 返回两个给定位置之间的距离
返回两个给定位置之间的距离
GEODIST 空间 城市名称1 城市名称2 单位 GEODIST china:city shanghai beijing km
单位如下:
m 表示单位为米。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。
4.Geohash 返回一个或多个位置元素的 Geohash 表示
返回一个或多个位置元素的 Geohash 表示
GEOHASH 空间 城市名称1 城市名称2 GEOHASH china:city shanghai beijing
5.Georadius 以给定的经纬度为中心, 找出某一半径内的元素
以给定的经纬度为中心, 找出某一半径内的元素
GEORADIUS 空间 经度 纬度 半径长度 单位 [WITHCOORD进度纬度] [WITHDIST直线距离]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUS Sicily 15 37 200 km WITHDIST
1) 1) "Palermo"
2) "190.4424"
2) 1) "Catania"
2) "56.4413"
redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
1) 1) "Palermo"
2) 1) "13.361389338970184"
2) "38.115556395496299"
2) 1) "Catania"
2) 1) "15.087267458438873"
2) "37.50266842333162"
redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
1) 1) "Palermo"
2) "190.4424"
3) 1) "13.361389338970184"
2) "38.115556395496299"
2) 1) "Catania"
2) "56.4413"
3) 1) "15.087267458438873"
2) "37.50266842333162"
redis>
WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。
WITHCOORD: 将位置元素的经度和维度也一并返回。
WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
命令默认返回未排序的位置元素。 通过以下两个参数, 用户可以指定被返回位置元素的排序方式:
ASC: 根据中心的位置, 按照从近到远的方式返回位置元素。
DESC: 根据中心的位置, 按照从远到近的方式返回位置元素。
6.Georadiusbymember 找出位于指定范围内的元素,中心点是由给定的位置元素决定
这个命令和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 GEORADIUSBYMEMBER 的中心点是由给定的位置元素决定的, 而不是像 GEORADIUS 那样, 使用输入的经度和纬度来决定中心点
找出位于指定范围内的元素,中心点是由给定的位置元素决定
GEORADIUSBYMEMBER 空间 城市名称 半径长度 单位