geohash java是什么,讓我們一起了解一下?
GeoHash是目前比較主流實現位置服務的技術,Geohash算法將經緯度二維數據編碼為一個字符串,GeoHash算法分為三步:1. 計算經緯度的二進制、2. 合并經緯度的二進制、3. 通過Base32對合并后的二進制進行編碼。?
我們知道,經度范圍是東經180到西經180,緯度范圍是南緯90到北緯90,我們設定西經為負,南緯為負,所以地球上的經度范圍就是[-180, 180],緯度范圍就是[-90,90]。如果以本初子午線、赤道為界,地球可以分成4個部分。
GeoHash的思想就是將地球劃分的四部分映射到二維坐標上。
那么如何理清geohash的算法原理,我們以計算經緯度的二進制為例。
//根據經緯度和范圍,獲取對應的二進制 private?BitSet?getBits(double?l,?double?floor,?double?ceiling)?{ BitSet?buffer?=?new?BitSet(numbits); for?(int?i?=?0;?i?=?mid)?{ buffer.set(i); floor?=?mid; }?else?{ ceiling?=?mid; } } return?buffer; }
上述代碼numbits為:private static int numbits = 3 * 5; //經緯度單獨編碼長度也就是說將地球進行15次二分切割。
以上就是小編今天的分享了,希望可以幫助到大家。