網上找的很多都是swift的實現,最終找到了一個oc的實現方法,是直接調用C的
#ios OC Geohash
2、geohash算法
-
根據經緯度計算GeoHash二進制編碼
-
組碼(將經緯度的兩個二進制編碼合成新串)
-
使用用0-9、b-z(去掉a, i, l, o)這32個字母進行base32編碼
3、OC中的調用
在OC中調用C的方法
在需要轉geohash的類中直接聲明
#import “geohash.h”
----------------------------->直接在類中寫好方法,等待調用
/**
* 將經緯度轉成 geohash
*
* @param latitude 緯度
* @param longitude 經度
* @param length 生成的geohash字符串長度
*
* @return NSString 返回geohash
*/
- (NSString *)getGeohash:(CGFloat)latitude andLon:(CGFloat)longitude andLength:(int)length{
char *hash = GEOHASH_encode(latitude,longitude,length); // 通過 geohash.h C文件 獲取 geohash 值
NSString *string = [NSString stringWithFormat:@"%s",hash]; // 將char 轉成 string
return string;
}
需要geohash.h的文件才能實現,資源下載鏈接
https://download.csdn.net/download/flyweak/11218159