在日常生活中,我們經常使用手機搜尋附近的餐館,或者在打車軟體上打車,都需要獲取使用者和服務商之間位置資訊,而redis
提供了一種可以查詢地理位置資訊的資料結構geo
,其底層實現原理和有序集合(sorted set)
的原理一樣,我們知道有序集合資料特點就是每個值有對應的權重(score)
,這篇文章學習一下geo
如何對經緯度編碼,然後通過這種編碼實現有序集合(sorted set)
中就有了權重(score)
了,這樣就能快速找到相鄰經緯度資訊的資料了。
tips:維度的編碼和經度類似,維度範圍是[-90,90]
。作用:使用
sorted set
範圍查詢得到的相近編碼值,在實際的地理空間上,也是相鄰的方格,這就可以實現搜尋附近的人或物
的功能了特殊情況處理:
geoadd cars:locations 116.034579 39.030452 33
掃碼關注georadius cars:locations 116.054579 39.030452 5 km asc count 10
經緯度計算 筆記
經緯度之間距離計算 返回單位 公尺 function distance lon1,lat1,lon2,lat2 echo distance 116.368904,39.923423,116.387271,39.922501 die 高德計算距離 deg2rad 函式將角度轉換為弧度。rad2deg ...
經緯度計算
define earth radius,6371 地球半徑,平均半徑為6371km 計算某個經緯度的周圍某段距離的正方形的四個點 param lng float 經度 param lat float 緯度 param distance float 該點所在圓的半徑,該圓與此正方形內切,預設值為0.5...
經緯度轉化
經緯度的表示 1.經緯度以度數表示,2.度 角分 1角分等於六十分之一度 秒 一秒等於六十分之一分 表示。如 北緯n39 34 14.95 東經e116 34 52.18 化為小數點的度為 北緯39.5708181173,東經116.5811614825 具體化法 北緯n39 34 14.95 39...