geospatial地理位置
-
朋友的定位,附近的人,打车距离计算?
-
Redis的Geo在Redis3.2版本就推出了!这个功能可以推算出地理位置的信息,两地之间的距离,方圆几里的人!
-
可以查询一些数据!!!
-
只有六个命令
-
geoadd
-
#添加地理位置 #规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入 #参数(纬度 经度 名称) 127.0.0.1:6379> geoadd china:city 116 39 beijing (integer) 1 127.0.0.1:6379> geoadd china:city 121 31 shanghai (integer) 1 127.0.0.1:6379> geoadd china:city 106 29 chongqing (integer) 1 127.0.0.1:6379> geoadd china:city 114 22 shenzhen (integer) 1 127.0.0.1:6379> geoadd china:city 120 30 hangzhou 108 34 xian (integer) 2 #错误,超出范围 127.0.0.1:6379> geoadd china:city 39 116 beijing (error) ERR invalid longitude,latitude pair 39.000000,116.000000 #获取地点的位置 #geopos 127.0.0.1:6379> geopos china:city beijing 1) 1) "116.00000113248825073" 2) "38.99999918434559731" 127.0.0.1:6379> geopos china:city shanghai chongqing 1) 1) "120.99999815225601196" 2) "31.00000097648057817" 2) 1) "106.00000172853469849" #获取两点之间的距离 #geodist 127.0.0.1:6379> geodist china:city shanghai beijing km "999.2077" 127.0.0.1:6379> geodist china:city beijing chongqing "1442782.2644" 127.0.0.1:6379> geodist china:city beijing chongqing km "1442.7823" #我附近的人?(获得所有附近的地址,定位!)通过半径来查询! #georadius 127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km 1) "chongqing" 2) "xian" 3) "shenzhen" 4) "hangzhou" 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km 1) "chongqing" 2) "xian" #后面可以根据自己的需要添加一些参数 #withcoord,经纬度 #withdist 获取距离 #count 获取数量 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withcoord withdist count 1 1) 1) "chongqing" 2) "402.8557" 3) 1) "106.00000172853469849" 2) "28.99999952347345555" #通过具体的城市为中心,查找周围的城市 127.0.0.1:6379> georadiusbymember china:city beijing 400 km 1) "beijing" #Geohash #该命令返回11个字符的Geohash字符串! #如果两个字符串越接近,则距离越近,很少去使用 127.0.0.1:6379> geohash china:city beijing chongqing 1) "wwfmzesx7y0" 2) "wm5kup6c5p0"
-
Geo底层实现原理就是Zset命令,我们可以使用zet操作geo
-
127.0.0.1:6379> zrange china:city 0 -1 1) "chongqing" 2) "xian" 3) "shenzhen" 4) "hangzhou" 5) "shanghai" 6) "beijing" 127.0.0.1:6379> zrem china:city hangzhou (integer) 1 127.0.0.1:6379> zrange china:city 0 -1 1) "chongqing" 2) "xian" 3) "shenzhen" 4) "shanghai" 5) "beijing"
-
-