geohash7面積大小 基于快速GeoHash,如何實(shí)現(xiàn)海量商品與商圈的高效匹配?
基于快速GeoHash,如何實(shí)現(xiàn)海量商品與商圈的高效匹配?Geohash原理與算法Geohash是一種編碼地理坐標(biāo)的方法,它把二維坐標(biāo)映射成一個(gè)字符串。每個(gè)字符串表示一個(gè)特定的矩形,其中所有坐標(biāo)共享該
基于快速GeoHash,如何實(shí)現(xiàn)海量商品與商圈的高效匹配?
Geohash原理與算法
Geohash是一種編碼地理坐標(biāo)的方法,它把二維坐標(biāo)映射成一個(gè)字符串。每個(gè)字符串表示一個(gè)特定的矩形,其中所有坐標(biāo)共享該字符串。字符串越長(zhǎng),精度越高,相應(yīng)的矩形范圍越小。
編碼地理坐標(biāo)時(shí),根據(jù)初始范圍的緯度[-90,90]和經(jīng)度[-180,180],分別計(jì)算目標(biāo)經(jīng)度和經(jīng)度是落在左范圍還是落在右范圍。如果落在左間隔,則取0,如果落在右間隔,則取1。然后根據(jù)該方法將上一步得到的區(qū)間對(duì)半搜索,得到下一個(gè)二進(jìn)制碼。當(dāng)代碼長(zhǎng)度達(dá)到業(yè)務(wù)進(jìn)程的要求時(shí),按照“偶位經(jīng)度,奇位經(jīng)度”的規(guī)則,對(duì)二進(jìn)制代碼進(jìn)行交織合并,得到一個(gè)新的二進(jìn)制字符串。最后,根據(jù)base32的比較表,將二進(jìn)制字符串轉(zhuǎn)換成字符串,得到地理坐標(biāo)對(duì)應(yīng)的目標(biāo)