Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法
此檔案為C語言實現
函式庫使用介紹:
1)編碼
char* geohash_encode(double lat, double lng, int precision);
以所需精度獲取緯度和經度並返回正確的哈希值。如果精度 < 0 或精度 > 20,將使用默認值 6。
2)解碼
GeoCoord geohash_decode(char* hash);
生成一個分配的 GeoCoord 結構,其中包含從 geohash 解碼的緯度和經度。GeoCoord 還提供了 geohash 的邊界框(北、東、南、西)。
3)鄰居
char** geohash_neighbors(char* hash);
使用在 hash 處聲明的邊界框併計算 8 個相鄰框。下面顯示了一個示例。
ezefx ezs48 ezs49
ezefr ezs42 ezs43
ezefp ezs40 ezs41
返回的值是一個長度為 8 的 char* 數組。值的相鄰位置如下所示,每個框代表數組的索引。
7 0 1
6 * 2
5 4 3
1