利用GeoHash優化查詢附近門店功能

2021-10-23 05:30:58 字數 633 閱讀 1031

有乙個營銷砍價活動,當使用者報名完成後,需要選擇去領取活動商品的門店,可選的門店列表需要按照距離當前使用者經緯度最近的3家門店進行距離排序,假設候選門店有10000家門店。具體demo如下圖:

2.1 思路

2.2 geohash實踐

2.2.1 活動繫結門店表增加geohash欄位

id(自增,bigint)

shop_id(門店id,bigint)

lon(經度,string)

lat(緯度,string)

geohash(string)

23234232

119.466602

29.214044

wthynw2b

2.2.2 構造查詢sql

select * from t_cmc_act_child_shop

where is_deleted = 0

and act_id =990

and geohash like concat(#, '%');

limit 3

2.3 **

geohash的應用 附近位址搜尋

url 簡單使用 geohash,redis,bottle,python geohash 來實現 restful api的地理位置附近人搜素 依賴的redis封裝class import redis class redis object pool none r none def init self,...

mysql查詢附近優化思路

思路就是一,怎麼使用索引,如何縮小範圍 1.按照地區進行縮小範圍 例如中國,就比全球要小,北京又比中國要小,甚至精確到某個區,縣等 2.通過geohash演算法,建立索引 其實就是通過一種編碼方式,將二維的經緯度轉換為一維的,類似於那將整個地球劃分成4000 4000,每個格仔再劃分成10 10,最...

GeoHash演算法獲取附近店鋪和距離

geohash演算法將二維經緯度座標直接轉換成字串,每乙個字串代表乙個矩形區域,也就是說,這個矩形區域內所有的點 經緯度座標 都共享相同的geohash字串,字串的長度越大,矩形的區域就越小,經度也就越高。字串相似的表示距離相近,這樣可以利用字串的字首匹配來查詢附近的poi資訊。地球緯度區間是 90...