成人深夜视频网站|日韩高清无码久久|中文a√在线天堂|亚洲黄网站在线看|欧美视频 第二页|日本 久草 天堂|高潮无遮挡黄视频|久久一级内射精品|国产操逼一级视频|五月天婷婷色AV

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

滴滴打車如何找出方圓一千米內(nèi)的乘客?揭開 GeoHash 的神秘面紗

0
分享至

文檔資料: wenku.itilzj.com


  • 背景

  • GeoHash基本原理介紹

  • GeoHash如何應(yīng)用到這個問題當中?

  • 遺留問題

背景

不知道大家是否思考過一個問題,在一些場景下(如大家在使用高德地圖打車的時候,鄰近的司機是如何知道你在他的附近并將你的打車通知推送給他去接單的?)是如何實現(xiàn)的?

一般來講,大家也許會想到,首先肯定需要知道每位乘客的經(jīng)緯度(lng,lat),也即是二維坐標(當然這是在絕對理想的情況,不考慮上下坡度)。

而在知道了經(jīng)緯度之后,一個暴力簡單且容易想到的思路就是將經(jīng)緯度這個「二元組」都存放在一個「數(shù)組」當中,然后當我們需要拿到離我們規(guī)定范圍內(nèi)的用戶(如獲取當前位置方圓百米內(nèi)正在打車的乘客),我們就可以去遍歷維護的那個數(shù)組,以此去判斷數(shù)組中的經(jīng)緯度與自己所在經(jīng)緯度的距離,然后判斷是否在范圍內(nèi)。

顯然這種方法一定是能夠達到目的的,但是值得注意的點是,維護的數(shù)據(jù)量一般來講是海量的,因此如果每次都需要遍歷所有數(shù)據(jù)去進行計算,那這計算量以及存儲量目前是無法滿足的。那如何在此基礎(chǔ)上去優(yōu)化性能呢??那么這個內(nèi)容就是本篇文章主要想探討的問題......

GeoHash基本原理介紹

首先我想先介紹一下GeoHash這種算法「基本原理」,再討論如何進行應(yīng)用。

對于每一個坐標都有它的經(jīng)緯度(lng,lat),而GeoHash的原理就是將經(jīng)緯度先通過一個二分的思路拿到一個二進制數(shù)組的字符串,然后再通過base32編碼去進行壓縮存儲。

舉一個例子,比如經(jīng)緯度為(116.3111126,40.085003),對其進行二分步驟如下:

經(jīng)度步驟:


bitleftmidright1 -180 0 180 1 0 90 180 0 90 135 180 1 90 112.5 135 0 112.5 123.75 135 0 112.5 118.125 123.75 1 112.5 115.3125 118.125 0 115.3125 116.71875 118.125 1 115.3125 116.015625 116.71875 0 116.015625 116.3671875 116.71875 1 116.015625 116.19140625 116.3671875 1 116.19140625 116.279296875 116.3671875 0 116.279296875 116.323242188 116.3671875 1 116.279296875 116.301269532 116.323242188 0 116.301269532 116.31225586 116.323242188

緯度步驟:


bitleftmidright1 -90 0 90 0 0 45 90 1 0 22.5 45 1 22.5 33.75 45 1 33.75 39.375 45 0 39.375 42.1876 45 0 39.375 40.78125 42.1876 1 39.375 40.078125 40.78125 0 40.078125 40.4296875 40.78125 0 40.078125 40.25390625 40.4296875 0 40.078125 40.166015625 40.25390625 0 40.078125 40.1220703125 40.166015625 0 40.078125 40.1000976563 40.1220703125 0 40.078125 40.0891113282 40.1000976563 1 40.078125 40.0836181641 40.0891113282

「其思路就是不斷二分,如果原本值大于mid那本bit位就是1,以此往下遞歸,最終,我們遞歸二分得到緯度方向上的二進制字符串為 101110010000001,長度為 15 位」

那此時就拿到了30bit位的字符串,然后就開始進行拼接

結(jié)合經(jīng)度字符串110100101011010和緯度字符串101110010000001,我們遵循先經(jīng)度后緯度的順序,逐一交錯排列,最終得到的一維字符串為11100 11101 00100 11000 10100 01001.

然后再進行Base32編碼,主要步驟就是首先會維護一個「0-9A-Za-z」中32個字符的數(shù)組,如:['a','b','1','2','3','4','5','6','7','A'...],然后再將這30位的字符串每五個一組(正好覆蓋0-31的索引)去索引到指定字符以此拿到30/5=6位的base32編碼去進行存儲。

「ps:注意并不一定是必要將經(jīng)緯度都二分得到15位長度,多少位都可以,只是精度越高結(jié)果也就越精確,但是算力就越大,只需在此做出權(quán)衡即可」

GeoHash如何應(yīng)用到這個問題當中?

上面講到了可以通過GeoHash將經(jīng)緯度轉(zhuǎn)換成bit位的字符串,那么怎么進行應(yīng)用呢,其實答案很明顯,其實如果經(jīng)緯度越接近,他們的前綴匹配位數(shù)也就越長,比如

通過這個思路我們就比較容易得到我們想要的范圍內(nèi)的乘客了。

遺留問題

但是其實僅僅如此是不夠的,因為一個base32其實是覆蓋了一片區(qū)域的,它并不是說僅僅代表一個精確的ip地址,那這其實就衍生出了一些問題,就比如

用geohash那結(jié)果顯然是AB更近,但是實際上A與B的距離比AE、AC、AD都遠。這其實是一個邊緣性的問題........后續(xù)我會更新如何去避免這種問題的出現(xiàn)

IT架構(gòu)師/技術(shù)大咖的交流圈子,為您提供架構(gòu)體系知識、技術(shù)文章、流行實踐案例、解決方案等,行業(yè)大咖分享交流/同行經(jīng)驗分享互動,期待你的加入!掃碼即可加入哦,隨著材料不斷增多社群會不定期漲價早加入更優(yōu)惠

免責聲明:

本公眾號部分分享的資料來自網(wǎng)絡(luò)收集和整理,所有文字和圖片版權(quán)歸屬于原作者所有,且僅代表作者個人觀點,與本公眾號無關(guān),文章僅供讀者學習交流使用,并請自行核實相關(guān)內(nèi)容,如文章內(nèi)容涉及侵權(quán),請聯(lián)系后臺管理員刪除。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
九三閱兵,70分鐘這樣安排!天安門廣場布置基本就緒→

九三閱兵,70分鐘這樣安排!天安門廣場布置基本就緒→

愛看頭條
2025-09-02 13:41:14
樊振東為何連輸兩場,德國主力說出實情:這里和中國不一樣

樊振東為何連輸兩場,德國主力說出實情:這里和中國不一樣

徐云流浪中國
2025-09-02 14:00:52
上海流浪大師沈巍七夕奔赴南京見紅顏知己曉曉,兩人真是心有靈犀

上海流浪大師沈巍七夕奔赴南京見紅顏知己曉曉,兩人真是心有靈犀

總在茶余后
2025-09-02 01:21:15
九三閱兵越來越近,李在明發(fā)現(xiàn)得罪不起中國,決定派人送上親筆信

九三閱兵越來越近,李在明發(fā)現(xiàn)得罪不起中國,決定派人送上親筆信

boss外傳
2025-09-01 17:10:03
深圳教輔“禁入校園”大反轉(zhuǎn)!教育局緊急說明,家長松了口氣……

深圳教輔“禁入校園”大反轉(zhuǎn)!教育局緊急說明,家長松了口氣……

教師吧
2025-09-02 14:40:51
烏克蘭襲擊克里米亞RT-70射電望遠鏡:意義甚至超過摧毀S-400雷達

烏克蘭襲擊克里米亞RT-70射電望遠鏡:意義甚至超過摧毀S-400雷達

零度Military
2025-09-01 19:45:41
橫店20萬群演現(xiàn)狀:美女泛濫成災(zāi),光棍懶漢遍地,他們該何去何從

橫店20萬群演現(xiàn)狀:美女泛濫成災(zāi),光棍懶漢遍地,他們該何去何從

甜檸聊史
2025-08-18 08:00:54
弟弟6歲走失,20年后姐姐求職,看到老板戴父親遺物當場痛哭

弟弟6歲走失,20年后姐姐求職,看到老板戴父親遺物當場痛哭

蘭姐說故事
2025-08-29 17:40:03
謝霆鋒兒子被劍橋錄取,張柏芝教育方式引熱議,王菲女兒卻走偏了

謝霆鋒兒子被劍橋錄取,張柏芝教育方式引熱議,王菲女兒卻走偏了

今日美食分享
2025-09-01 15:11:24
夏窗標王!官方:利物浦簽下伊薩克,轉(zhuǎn)會費1.3億鎊再破英超紀錄

夏窗標王!官方:利物浦簽下伊薩克,轉(zhuǎn)會費1.3億鎊再破英超紀錄

直播吧
2025-09-02 04:36:26
央企圈熱傳:暫停發(fā)放員工各類績效工資的通知,非運營商圈!

央企圈熱傳:暫停發(fā)放員工各類績效工資的通知,非運營商圈!

環(huán)球通信
2025-09-01 21:28:33
姜萍現(xiàn)狀如何?一家不知去向,新學期未返校,疑似某服裝廠打工

姜萍現(xiàn)狀如何?一家不知去向,新學期未返校,疑似某服裝廠打工

奇思妙想草葉君
2025-09-02 13:09:30
黑猩猩發(fā)動長達4年的血腥戰(zhàn)爭,將兄弟趕盡殺絕,殘暴堪比人類

黑猩猩發(fā)動長達4年的血腥戰(zhàn)爭,將兄弟趕盡殺絕,殘暴堪比人類

怪羅
2025-08-28 00:06:28
女子龜速騎車后續(xù):一天堵隧道兩次,態(tài)度囂張交警介入,全網(wǎng)社死

女子龜速騎車后續(xù):一天堵隧道兩次,態(tài)度囂張交警介入,全網(wǎng)社死

削桐作琴
2025-09-02 12:36:43
恐怖!湖南一男子拔掉女友8顆牙齒,又連夜開車從東莞去長沙行兇

恐怖!湖南一男子拔掉女友8顆牙齒,又連夜開車從東莞去長沙行兇

火山詩話
2025-09-01 05:40:56
烏克蘭遠超導(dǎo)彈量產(chǎn),匈牙利即將變天

烏克蘭遠超導(dǎo)彈量產(chǎn),匈牙利即將變天

難得君
2025-09-01 16:23:14
7人站橋欄上疑“跳水留影”,6人入水瞬間橋欄倒塌;臺州當?shù)兀壕揭呀槿胝{(diào)查

7人站橋欄上疑“跳水留影”,6人入水瞬間橋欄倒塌;臺州當?shù)兀壕揭呀槿胝{(diào)查

大風新聞
2025-09-01 21:48:06
李在明痛打落水狗,徹底清算死敵!要將韓國親美右派斬草除根

李在明痛打落水狗,徹底清算死敵!要將韓國親美右派斬草除根

boss外傳
2025-09-01 16:00:03
證監(jiān)會終于要動真格了,9月2日,A股市場將迎來新變局?

證監(jiān)會終于要動真格了,9月2日,A股市場將迎來新變局?

風口招財豬
2025-09-02 01:07:53
專家解剖400例心梗猝死者,發(fā)現(xiàn)規(guī)律:易死的人,有這7共同點!

專家解剖400例心梗猝死者,發(fā)現(xiàn)規(guī)律:易死的人,有這7共同點!

牛鍋巴小釩
2025-09-02 14:32:50
2025-09-02 17:19:00
IT架構(gòu)師聯(lián)盟 incentive-icons
IT架構(gòu)師聯(lián)盟
IT架構(gòu)實戰(zhàn)分享
787文章數(shù) 7667關(guān)注度
往期回顧 全部

科技要聞

別叫我車企!馬斯克:特斯拉80%價值在機器人

頭條要聞

印度駐華大使館發(fā)文:請欣賞莫迪在天津受到的熱烈歡迎

頭條要聞

印度駐華大使館發(fā)文:請欣賞莫迪在天津受到的熱烈歡迎

體育要聞

等了十年,石宇奇終于說出這句話

娛樂要聞

于正也保不住?業(yè)內(nèi)暗示許凱成風險藝人

財經(jīng)要聞

一級市場不靈,LP勸我去炒股

汽車要聞

勢能爆發(fā) 盧放談全新嵐圖知音爆款邏輯

態(tài)度原創(chuàng)

時尚
健康
旅游
親子
軍事航空

早秋第一件薄外套!跪求你買這4件,太好看了!

內(nèi)分泌科專家破解身高八大謠言

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

親子要聞

已經(jīng)第十一周了,居然沒有孕反,真的太幸運了

軍事要聞

九三閱兵 具體安排來了

無障礙瀏覽 進入關(guān)懷版