關於地理編碼與反地理編碼

2021-07-10 22:13:50 字數 2897 閱讀 7743

clgeocoder:地理編碼器,其中geo是地理的英文單詞geography的簡寫。

1.使用clgeocoder可以完成「地理編碼」和「反地理編碼」

地理編碼:根據給定的地名,獲得具體的位置資訊(比如經緯度、位址的全稱等)

反地理編碼:根據給定的經緯度,獲得具體的位置資訊

(1)地理編碼方法  - (void)geocodeaddressstring:(nsstring *)addressstring completionhandler:(clgeocodecompletionhandler)completionhandler; 

(2)反地理編碼方法  - (void)reversegeocodelocation:(cllocation *)location completionhandler:      (clgeocodecompletionhandler)completionhandler;

2.clgeocodecompletionhandler

當地理\反地理編碼完成時,就會呼叫clgeocodecompletionhandler

這個block傳遞2個引數

error :當編碼出錯時(比如編碼不出具體的資訊)有值

placemarks :裡面裝著clplacemark物件

3.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;

4.在storyboard中搭建介面如下:

實現**:
@inte***ce viewcontroller ()

//地理編碼

- (ibaction)geocoder:(id)sender;

@property (weak, nonatomic) iboutlet uitextfield *addressfield;

@property (weak, nonatomic) iboutlet uilabel *longitudelabel;

@property (weak, nonatomic) iboutlet uilabel *latitudelabel;

@property (weak, nonatomic) iboutlet uilabel *detailaddresslabel;

//反地理編碼

- (ibaction)reversegeocode:(id)sender;

@property (weak, nonatomic) iboutlet uitextfield *longitudefield;

@property (weak, nonatomic) iboutlet uitextfield *latitudefield;

@property (weak, nonatomic) iboutlet uilabel *reverdedetailaddresslabel;

@property (nonatomic,strong) clgeocoder *geocoder;

@end

@implementation viewcontroller

- (clgeocoder *)geocoder

return _geocoder;

}- (void)viewdidload

//地理編碼(地名-經緯度)

- (ibaction)geocoder:(id)sender else

//取出獲取的地理資訊陣列中的第乙個顯示在介面上

clplacemark *firstmark = [placemarks firstobject];

//詳細位址名稱

self.detailaddresslabel.text = firstmark.name;

//緯度

self.latitudelabel.text = [nsstring stringwithformat:@"%.2f",firstmark.location.coordinate.latitude];

//經度

self.longitudelabel.text = [nsstring stringwithformat:@"%.2f",firstmark.location.coordinate.longitude];

}}];

}//反地理編碼(經緯度-地名)

- (ibaction)reversegeocode:(id)sender else

}];}@end

執行效果如下

(一)地理編碼(位址-座標)

(二)反地理編碼(座標-位址)

ios地理編碼 反地理編碼

1.地理編碼 給定乙個名字 北京 獲得給定名字對應的位置 經緯度 2反地理編碼 給定義個位置 經緯度 獲得這個位置對應的詳細資訊 國家 省 街道 樓 import viewcontroller.h import inte ce viewcontroller end implementation vi...

(七十七)地理編碼與反地理編碼

所謂地理編碼,指的是通過地名獲取位置資訊,例如經緯度 詳細位址等。所謂反地理編碼,指的是通過經緯度 海拔等資訊獲取地理位置資訊。在ios上使用地理編碼和反地理編碼,如果是手動輸入經緯度,是不需要獲取使用者授權的,但是一般是獲取使用者的經緯度,然後再通過地理編碼實現精確定位,因此需要授權,本文因為是單...

(七十七)地理編碼與反地理編碼

所謂地理編碼。指的是通過地名獲取位置資訊。比如經緯度 具體位址等。所謂反地理編碼,指的是通過經緯度 海拔等資訊獲取地理位置資訊。在ios上使用地理編碼和反地理編碼,假設是手動輸入經緯度,是不須要獲取使用者授權的,可是通常是獲取使用者的經緯度,然後再通過地理編碼實現精確定位,因此須要授權。本文由於是單...