CLGeocoder地理編碼與逆地理編碼

2021-07-05 05:54:05 字數 1855 閱讀 7535

使用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上使用地理編碼和反地理編碼,如果是手動輸入經緯度,是不需要獲取使用者授權的,但是一般是獲取使用者的經緯度,然後再通過地理編碼實現精確定位,因此需要授權,本文因為是單...