使用clgeocoder可以完成「地理編碼」和「逆地理編碼」
地理編碼:根據給定的地名,獲得具體的位置資訊(比如經緯度、位址的全稱等)
逆地理編碼:根據給定的經緯度,獲得具體的位置資訊
地理編碼方法
- (void)geocodeaddressstring:(nsstring *)addressstring completionhandler:(clgeocodecompletionhandler)completionhandler;
- (void)geocodeelse
// 獲取陣列中第乙個元素的地標資訊- clplacemark(地標類)
clplacemark *firstplacemark = placemarks.firstobject;
nsstring *name = firstplacemark.name;
cllocationdegrees latitude = firstplacemark.location
.coordinate
.latitude;// 緯度
cllocationdegrees longitude = firstplacemark.location
.coordinate
.longitude;// 經度
}}];
}
逆地理編碼方法
- (void)reversegeocodelocation:(cllocation *)location completionhandler:(clgeocodecompletionhandler)completionhandler;
- (void)reversegeocode else
// 獲取陣列中第乙個元素的地標資訊
clplacemark *placemark = placemarks.firstobject;
nslog(@"%@",[placemark.addressdictionary[@"formattedaddresslines"] firstobject]);
}}];
}
clgeocodecompletionhandler
當地理\反地理編碼完成時,就會呼叫clgeocodecompletionhandler
typedef void (^clgeocodecompletionhandler)(nsarray *placemarks, nserror *error);
這個block傳遞2個引數
error :當編碼出錯時(比如編碼不出具體的資訊)有值
placemarks :裡面裝著clplacemark物件
clplacemark
clplacemark的字面意思是地標,封裝詳細的位址位置資訊
@property (nonatomic, readonly) cllocation *location;
地理位置
@property (nonatomic, readonly) clregion *region;
區域@property (nonatomic, readonly) nsdictionary *addressdictionary;
詳細的位址資訊
@property (nonatomic, readonly) nsstring *name;
位址名稱
@property (nonatomic, readonly) nsstring *locality;
城市
iOS 使用CLGeocoder獲取地理位置
placemark mkplacemark類的物件 其實是geocoder mkreversegeocoder類的物件 的乙個屬性。從geocoder裡面取placemark這個和直接取placemark這個其實區別不大。而我們需要的資訊主要就在這個裡面了。這個字典存放基礎資料 property n...
關於地理編碼與反地理編碼
clgeocoder 地理編碼器,其中geo是地理的英文單詞geography的簡寫。1.使用clgeocoder可以完成 地理編碼 和 反地理編碼 地理編碼 根據給定的地名,獲得具體的位置資訊 比如經緯度 位址的全稱等 反地理編碼 根據給定的經緯度,獲得具體的位置資訊 1 地理編碼方法 void ...
(七十七)地理編碼與反地理編碼
所謂地理編碼,指的是通過地名獲取位置資訊,例如經緯度 詳細位址等。所謂反地理編碼,指的是通過經緯度 海拔等資訊獲取地理位置資訊。在ios上使用地理編碼和反地理編碼,如果是手動輸入經緯度,是不需要獲取使用者授權的,但是一般是獲取使用者的經緯度,然後再通過地理編碼實現精確定位,因此需要授權,本文因為是單...