朋友的定位,附近的人,位置共享,打车距离 redis在3.2就已经推出了geospatial!两地之间的距离,方圆几里的人!都可以用它实现 这个需要把你所在地的经纬度输进去,我们可以在http://www.jsons.cn/lngcode/进行查询!
1、geospatial的六个命令
1.1、GEOADD
代码语言:javascript复制127.0.0.1:6379> geoadd china:city 39.90 116.40 beijing //添加地理位置(北京)
(integer) 1
127.0.0.1:6379> geoadd china:city 31.23 1216.47 shanghai
(error) ERR invalid longitude,latitude pair 1216.470000,31.230000
127.0.0.1:6379> geoadd china:city 31.23 121.47 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 22.52 114.05 shenzhen 18.24 109.50 sanya
(integer) 2
参数 key 纬度 经度 名称 ;有效的经度纬度 ps:两极无法添加
1.2、GROPOS
代码语言:javascript复制127.0.0.1:6379> GEOPOS china:city beijing //获取指定的经纬度
1) 1) "116.39999896287918091"
2) "39.90000009167092543"
127.0.0.1:6379> GEOPOS china:city shanghai
1) 1) "121.47000163793563843"
2) "31.22999903975783553"
获得当前定位(坐标值)
1.3、DEODIST
代码语言:javascript复制127.0.0.1:6379> GEODIST china:city beijing shanghai //两地(北京上海)的直线距离(默认单位是m)
"1067378.7564"
127.0.0.1:6379> GEODIST china:city beijing shanghai km
"1067.3788"
1.4、GEOEADIUS
代码语言:javascript复制127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km //一一个点为中心查找半径范围内的城市
1) "chongqing"
2) "shenzhen"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withdist //显示距离
1) 1) "chongqing"
2) "341.9374"
2) 1) "shenzhen"
2) "924.6408"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord //显示目标的位置
1) 1) "chongqing"
2) 1) "106.49999767541885376"
2) "29.52999957900659211"
2) 1) "shenzhen"
2) 1) "114.04999762773513794"
2) "22.5200000879503861"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord count 1 //筛选指定结果
1) 1) "chongqing"
2) 1) "106.49999767541885376"
2) "29.52999957900659211"
附近的人,通过半径来查询
1.5、GEORADIUSBYMEMBER
代码语言:javascript复制127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 2000 km //找出指定位置周围的
1) "chongqing"
2) "shenzhen"
3) "shanghai"
4) "beijing"
更接近于附近的人的功能!
1.6、GEOHASH
代码语言:javascript复制127.0.0.1:6379> GEOHASH china:city beijing chongqing //把经纬度转换为字符串,字符串越长越精确
1) "wx4fbxxfke0" //返回当前经纬度的字符串
2) "wm5xzrybty0"
1.7、查看和删除
代码语言:javascript复制127.0.0.1:6379> ZRANGE china:city 0 -1 //查询地图中全部元素
1) "sanya"
2) "chongqing"
3) "shenzhen"
4) "shanghai"
5) "beijing"
127.0.0.1:6379> ZREM china:city chongqing //删除
(integer) 1
127.0.0.1:6379> ZRANGE china:city 0 -1
1) "sanya"
2) "shenzhen"
3) "shanghai"
4) "beijing"
2、总结
有效的经度从-180度到180度。 有效的纬度从-85.05112878度到85.05112878度。
指定单位的参数 unit 必须是以下单位的其中一个:
m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。