您好,登錄后才能下訂單哦!
當(dāng)我們要在App實(shí)現(xiàn)功能:輸入地名,編碼為經(jīng)緯度,實(shí)現(xiàn)導(dǎo)航功能。
那么,我需要用到原生地圖中的地理編碼功能,而在Core Location中主要包含了定位、地理編碼(包括反編碼)功能。
在文件中導(dǎo)入
#import <CoreLocation/CoreLocation.h>
地理編碼:
/** 地理編碼 */ - (void)geocoder { CLGeocoder *geocoder=[[CLGeocoder alloc]init]; NSString *addressStr = @"廣東省深圳市寶安區(qū)";//位置信息 [geocoder geocodeAddressString:addressStr completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { if (error!=nil || placemarks.count==0) { return ; } //創(chuàng)建placemark對象 CLPlacemark *placemark=[placemarks firstObject]; //經(jīng)度 NSString *longitude =[NSString stringWithFormat:@"%f",placemark.location.coordinate.longitude]; //緯度 NSString *latitude =[NSString stringWithFormat:@"%f",placemark.location.coordinate.latitude]; NSLog(@"經(jīng)度:%@,緯度:%@",longitude,latitude); }]; }
地理反編碼:
/** 地理反編碼 */ - (void)reverseGeocoder{ //創(chuàng)建地理編碼對象 CLGeocoder *geocoder=[[CLGeocoder alloc]init]; //經(jīng)度 NSString *longitude = @"113.23"; //緯度 NSString *latitude = @"23.16"; //創(chuàng)建位置 CLLocation *location=[[CLLocation alloc]initWithLatitude:[latitude floatValue] longitude:[longitude floatValue]]; //反地理編碼 [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { //判斷是否有錯(cuò)誤或者placemarks是否為空 if (error !=nil || placemarks.count==0) { NSLog(@"%@",error); return ; } for (CLPlacemark *placemark in placemarks) { //詳細(xì)地址 NSString *addressStr = placemark.name; NSLog(@"詳細(xì)地址1:%@",addressStr); NSLog(@"詳細(xì)地址2:%@",placemark.addressDictionary); NSLog(@"詳細(xì)地址3:%@",placemark.locality); } }]; }
以上這篇iOS 原生地圖地理編碼與反地理編碼(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。