geospatial地理位置

2021-10-12 18:49:50 字數 3618 閱讀 9191

redis的geo在redis3.2版本就退出來了推算地理位置資訊,兩地之間的距離

可以查詢一些測試資料

#引數 key 緯度,經度 ,名稱

127.0.0.1:6379> geoadd china:city 116.397128 39.916527 beijin

(integer) 1127.0.0.1:6379> geoadd china:city 121.48941 31.40527 shanghai

(integer) 1

127.0.0.1:6379> geoadd china:city 106.54041 29.40268 chongqing

(integer) 1

127.0.0.1:6379> geoadd china:city 113.88308 22.55329 shenzhen

(integer) 1

127.0.0.1:6379> geoadd china:city 108.93425 34.23053 xian

(integer) 1

geopos

127.0.0.1:6379> geopos china:city beijin chongqing xian  # 獲取指定城市的經度和緯度

1) 1)

"116.39712899923324585"

2)"39.91652647362980844"

2) 1)

"106.54040783643722534"

2)"29.40268053517299762"

3) 1)

"108.93425256013870239"

2)"34.23053097599082406"

127.0.0.1:6379>

geodist

127.0.0.1:6379> geodist china:city beijin shanghai  #查詢北京到上海的距離

"1052105.5643"

127.0.0.1:6379> geodist china:city beijin shanghai km #查詢北京到上海的距離 km顯示

"1052.1056"

georadius

# 以110 和 30 經緯度為中心 ,尋找1000km內的城市

127.0.0.1:6379> georadius china:city 110 30 1000 km

1)"chongqing"

2)"xian"

3)"shenzhen"

127.0.0.1:6379> georadius china:city 110 30 500 km

1)"chongqing"

2)"xian"

127.0.0.1:6379> georadius china:city 110 30 500 km withdist

1) 1)

"chongqing"

2)"340.7667"

2) 1)

"xian"

2)"481.1278"

127.0.0.1:6379> georadius china:city 110 30 500 km withcoord

1) 1)

"chongqing"

2) 1)

"106.54040783643722534"

2)"29.40268053517299762"

2) 1)

"xian"

2) 1)

"108.93425256013870239"

2)"34.23053097599082406"

# 篩選出指定的結果

127.0.0.1:6379> georadius china:city 110 30 500 km withdist withcoord count 1

1) 1)

"chongqing"

2)"340.7667"

3) 1)

"106.54040783643722534"

2)"29.40268053517299762"

# withdist 距離

# withcoord 經度緯度

127.0.0.1:6379> georadius china:city 110 30 500 km withdist withcoord count 2

1) 1)

"chongqing"

2)"340.7667"

3) 1)

"106.54040783643722534"

2)"29.40268053517299762"

2) 1)

"xian"

2)"481.1278"

3) 1)

"108.93425256013870239"

2)"34.23053097599082406"

georadiusbymember

# 找出位於指定元素周圍的其他元素

127.0.0.1:6379> georadiusbymember china:city beijin 1000 km

1)"beijin"

2)"xian"

127.0.0.1:6379>

geohash

#將二維的維度轉換為一維的字串,如果兩個字串越接近,那麼距離越近

127.0.0.1:6379> geohash china:city beijin shanghai

1)"wx4g0dtf9e0"

2)"wtw6st1uuq0"

127.0.0.1:6379>

geo 底層的實現原理就是zset 我們可以使用zset命令來操作geo

#檢視地圖中全部的元素(城市)

127.0.0.1:6379> zrange china:city 0 -1

1)"chongqing"

2)"xian"

3)"shenzhen"

4)"shanghai"

5)"beijin"

127.0.0.1:6379> zrem china:city beijin

(integer) 1

127.0.0.1:6379> zrange china:city 0 -1

1)"chongqing"

2)"xian"

3)"shenzhen"

4)"shanghai"

Redis中Geospatial地理位置詳解

朋友的定位,附近的人,打車距離計算?redis的geo 在redis3.2 版本就推出了!這個功能可以推算地理位置的資訊,兩地之間的距離,方圓幾里的人!可以查詢一些測試資料 只有6個命令 getadd getpos 獲得當前定位 一定是乙個座標值!兩人之間的距離!單位 m 表示單位為公尺。km 表示...

特殊資料型別 Geospatial地理位置

127.0.0.1 6379 geoadd china city 116.40 39.90 beijing 加入乙個地理位置 integer 1 127.0.0.1 6379 geoadd china city 121.47 31.23 shanghai integer 1 127.0.0.1 63...

洋山港 地理位置

洋山港區位於浙江省嵊泗縣境內。由大洋山港口區和小洋山港口區組成。可供開發的深水岸線4900公尺,是上海國際航運中心的深水港區。位於嵊泗海域西部大洋山島的北岸。東北距縣城21.41海浬,西北距上海市蘆潮港18.9海浬。大洋山島海岸線總長16697公尺 其中基岩10214公尺 可利用岸線3200公尺,聖...