京東到家定位系統演化

2021-09-08 12:12:19 字數 2620 閱讀 6207

引言

依託達達的高效配送和大量優秀零售合作夥伴,京東到家為消費者提供生鮮蔬果、日用百貨、醫藥健康、鮮花蛋糕、個護美妝等海量商品 1 小時配送到家的極致服務體驗,在整個服務過程中,京東到家基於lbs將消費者和線下商家聯絡到一起,進而促成交易為消費者提供便利,在這背後定位系統是如何為京東到家提供基礎的定位能力呢?本文從技術角度介紹了京東到家定位系統的演進過程以及遇到的問題。

定位系統是做什麼的?

業務簡介

這個「附近」模組是典型的定位系統的應用,圖中藍色方框區域內容為當前座標的poi名稱,紅色方框區域內容為當前座標附近的門店資訊,紅色橢圓區域內容為當前座標與門店之間的距離。

簡單介紹下實現流程

第二步,首頁閘道器拿到當前位置的經緯度去請求位址系統,由位址系統訪問相應的gis服務得到poi資訊並返回

第三步,首頁閘道器根據poi資訊去請求定位系統,定位系統返回附近的門店列表以及距離資訊

大體流程如下圖所示:

除了這個典型的應用外,到家的很多系統都依賴定位系統,比如多門店的搜尋、運費的計算、提單時的超區校驗、訂單時效的計算……統計下來有50+的系統,這些系統幾乎涵蓋了使用者的整個購物過程,仔細想想也是情理之中,到家的許多業務都是基於位置展開的,這也正是o2o電商和傳統電商的乙個重要區別。

核心職責

從眾多的業務場景歸納下來,定位系統有兩個核心職責,如下圖所示

距離計算

計算兩個座標點的距離,多數為門店座標與使用者座標之間的距離

定位門店

得到使用者座標附近的門店資訊,門店的配送範圍多種多樣,使用者看到的為配送範圍覆蓋使用者座標的門店

架構演進過程

依據職責不同定位系統劃分為距離服務和定位服務,下面分開介紹這兩個服務的演進過程

距離服務

直線距離

這是所說的直線距離,實際為球面距離,我們認為地球是乙個規則的球體,球面上的兩個點,可以通過一系列的幾何公式推導得出乙個距離公式,將兩個點的經緯度代入公式即可算出球面距離,這裡就不展開了可自行搜尋相關資料。那麼我們為什麼要公升級,直線距離存在怎樣的問題呢?如下圖所示

圖中,起點到終點之間直線距離為390公尺,由於兩點之間隔著河和橋,實際的步行距離達到了1766公尺,實際的步行距離為直線距離的四倍之多,類似這種情況下展示給使用者直線距離,存在一定的不合理,影響使用者的體驗;另一方面,由於達達側計算運費使用的是步行距離,到家側使用直線距離,兩邊測算的距離不一致,無形中也給到家平台帶來一定的損失,基於以上的原因,距離服務公升級為使用步行距離。

步行距離

計算兩點之間的步行距離,由於涉及到道路的規劃、距離的測算等等元素,自己實現不現實,我們採用的是使用gis服務計算步行距離,但距離服務作為到家的乙個基礎的服務,同步請求gis服務顯然不能滿足我們對效能的要求,因此也催生了我們現在的方案,如下圖所示

大體上分為兩個階段

定位服務

定位服務的演進基本分為三個階段,如下圖所示

樸素匹配

到家發展初期,只有少數幾個門店,一一枚舉出這些門店,判斷配送範圍是否覆蓋使用者座標,從而匹配出覆蓋門店,但隨著門店的增加,此方案不再適用進入到下一階段。

最小覆蓋矩形

計算門店的配送範圍的最小覆蓋矩形,將所有門店的最小覆蓋矩形座標持久化到資料庫中,通過sql語句方式篩選出覆蓋使用者座標的門店,此方案支撐了到家一段時間的業務發展,隨著使用者量的增加,到家訪問量也不斷增長,通過資料庫查詢的方式逐漸不能滿足我們對效能的要求,進而開始繼續演化。

基於墨卡托投影倒排

墨卡托投影

墨卡托投影是正軸等角圓柱投影,假設乙個與地軸方向一致的圓柱切或割於地球,按等角條件,將經緯網投影到圓柱面上,將圓柱面展為平面後,即得本投影。經過墨卡托投影後的經線是均勻分布的,緯線是垂直於經線的一組平行直線,也就是說經過投影以後我們把球面轉化成了平面。

墨卡托座標

由上述公式經度λ、緯度θ對應的墨卡托座標就是(x*r, y*r),其中r為地球半徑。通過墨卡托投影,將座標系轉換為平面座標系,由此,可以依照某種規則將我國所覆蓋的區域分成若干大小相同的正方形區域進行標記編號,這些方格就是我們構建倒排索引的基礎。

倒排索引

假設現在有三個門店s1、s2、s3,三個門店有不同形狀的配送範圍,每個方格都有自己的編號,如上圖所示。

正排索引

構建出每個門店覆蓋的方格列表,即正排索引

倒排索引

依賴正排索引,構建出方格對應的覆蓋門店的列表,即倒排索引

構建倒排

門店配送範圍的倒排索引構建過程如下:

定位過程

依賴於倒排索引,定位門店的流程如下:

定位服務架構

採用倒排索引方案實現定位服務,極大的提公升了定位服務的效能,系統不再是業務發展的瓶頸,架構圖如下所示:

問題以及優化

架構趨於穩定,但隨著業務的發展,還是出現了一些新的問題,針對這些問題,我們也做了進一步的優化

新的問題

優化策略

服務架構也做了一些調整,新的架構如圖所示

優化效果

經過這次優化以後,問題得到了很好的解決,資料對比如下圖所示,值得一提的是,服務的平均效能由原來的2ms增加到了4ms,雖然響應時間有所增加,但增加的幅度完全在業務的可接受範圍內,帶來的好處卻是相當明顯的。

總結定位系統作為京東到家的基礎服務,為到家提供了核心的定位以及距離服務,隨著到家平台的不斷發展,定位系統也隨著不斷的演進優化,每一次演進優化都朝著提供穩定高可用服務的目標走出堅實的一步,為到家業務的飛速發展提供強有力的保障。

便利店牽手京東到家,多元零售矩陣走向成熟化

消費公升級 下,零售終端的擴張與創新並舉,便利店迎來了乙個全新的時代。商務部發布的2017年第四季度 中國便利店景氣指數報告 顯示,2017年第四季度便利店行業總體景氣指數為71.28,環比第三季度上公升2.03。一是以社群人群為主的便利店業態獲得了逆勢大幅增長 二是巨頭和資本的強勢進入使得便利店進...

定位與座標系演算法

火星座標系統 的解釋。1.國內各地圖api座標系統比較 參考結論是 api座標系 火星座標 搜狗座標 阿里雲地圖api 火星座標 圖吧mapbar地圖api 圖吧座標 高德mapabc地圖api 火星座標 靈圖51ditu地圖api 火星座標 演算法 如下,其中bd encrypt將 gcj 02 ...

京喜和京東到底啥區別?官方 針對收入較低的使用者

11 月 15 日晚間,京東發布了截至 9 月 30 日的 2019 年第三季度財報。該季度,京東淨營收為 1348 億元人民幣 約 189 億美元 同比增長28.7 增幅也創下近 5 個季度以來新高。財報顯示,2019 年第三季度,京東集團在美國通用bfzxcoa會計準則下 gaap 與非美國通用...