獲取地理位置信息(城市或者是省份)

最近看別人都寫簡書,覺得好高大上的樣子碉纺,覺得像我這樣作文水平告別及格的人,基本上就告別寫文章了刻撒。問了下我的基友們(他們都是程序員骨田,寫的是技術(shù)文章),都說主要是給自己看声怔,怕忘記态贤。好吧,我也怕忘記醋火,寫一篇試試吧抵卫,反正是自己看狮荔,也順便改善自己寫代碼不求甚解的不良習(xí)慣。

ps:這篇文主要是用系統(tǒng)自帶的地圖介粘,獲取殖氏,地理位置編碼,然后反編碼獲取地理位置信息(這里是城市信息)

?一姻采、準(zhǔn)備工作

1雅采、在info.plist里面添加權(quán)限(首先要?App Transport Security Settings (字典類型),然后在該項(xiàng)下慨亲,再添加我下面說的類型)

a婚瓜、Privacy - Location When In Use Usage Description(在使用從應(yīng)用程序期間獲取位置信息,我用的是這個(gè))

b刑棵、Privacy - Location Always Usage Description(每次啟用的時(shí)候巴刻,都要問問用戶)

c、Privacy - Location Usage Description(這個(gè)據(jù)說是用戶一旦選擇拒絕蛉签,以后應(yīng)用程序都不會使用用戶的位置胡陪,也不會提示)

2、在Build Phases添加CoreFoundation的基礎(chǔ)庫

?二碍舍、代碼

1柠座、引入頭文件

#import<CoreLocation/CoreLocation.h> //地理定位相關(guān)

2、屬性


@property(nonatomic,strong)CLLocationManager *manager;

@property(nonatomic,strong)CLLocation *location;


3片橡、代碼

#pragma mark- Location- 定位服務(wù)

- (void)getLocation{

_manager = [[CLLocationManager alloc]init];

//設(shè)置代理

_manager.delegate=(id)self;

//設(shè)置定位精度

_manager.desiredAccuracy = kCLLocationAccuracyKilometer;

//定位頻率,每隔多少米定位一次

CLLocationDistance distance=10.0f;//十米定位一次

_manager.distanceFilter=distance;

if (![CLLocationManager locationServicesEnabled]) {

//? ? ? ? [self showError:@"定位服務(wù)當(dāng)前可能尚未打開"];

return;

}

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined){

//ios8

if ([[UIDevice currentDevice].systemVersion floatValue]>=8.0) {

[_manager requestWhenInUseAuthorization];

//? ? ? ? ? ? [_manager requestAlwaysAuthorization];

}

//ios9

//? ? ? ? ? ? ? ? if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) {

//? ? ? ? ? ? ? ? ? ? _manager.allowsBackgroundLocationUpdates = YES;

//? ? ? ? ? ? ? ? }

}else if([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse){

}

//啟動跟蹤定位

[_manager startUpdatingLocation];

}

4妈经、獲取位置之后的回調(diào)


#pragma mark-CLLocationManagerDelegate? 位置更新后的回調(diào)

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

{

//停止位置更新

[_manager stopUpdatingLocation];

//此處locations存儲了持續(xù)更新的位置坐標(biāo)值,取最后一個(gè)值為最新位置捧书,如果不想讓其持續(xù)更新位置吹泡,則在此方法中獲取到一個(gè)值之后讓locationManager stopUpdatingLocation

_location = [locations lastObject];

// 獲取當(dāng)前所在的城市名

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

//根據(jù)經(jīng)緯度反向地理編譯出地址信息

[geocoder reverseGeocodeLocation:_location completionHandler:^(NSArray *array, NSError *error)

{

if (array.count > 0)

{

CLPlacemark *placemark = [array objectAtIndex:0];

//將獲得的所有信息顯示到label上

//? ? ? ? ? ? NSLog(@"placemark.name=%@,placemark.thoroughfare=%@,locality= %@,subLocality= %@,administrativeArea=%@,subAdministrativeArea= %@,postalCode = %@,ISOcountryCode= %@,country= %@,inlandWater=%@,ocean=%@",placemark.name,placemark.thoroughfare,placemark.locality,placemark.subLocality,placemark.administrativeArea,placemark.subAdministrativeArea,placemark.postalCode,placemark.ISOcountryCode,placemark.country,placemark.inlandWater,placemark.ocean);

//這是打印出來的信息2016-10-17 14:48:54.453 NewLive[7475:2760978] placemark.name=中國上海市長寧區(qū)虹橋街道中山西路1011號,placemark.thoroughfare=中山西路,locality= 上海市,subLocality= 長寧區(qū),administrativeArea=上海市,subAdministrativeArea= (null),postalCode = (null),ISOcountryCode= CN,country= 中國,inlandWater=(null),ocean=(null)

//獲取城市

NSString *city = placemark.locality;

if (!city) {

//四大直轄市的城市信息無法通過locality獲得,只能通過獲取省份的方法來獲得(如果city為空经瓷,則可知為直轄市)

city = placemark.administrativeArea;

}

//? ? ? ? ? ? if (![NSString isEmpty:city]) {

//? ? ? ? ? ? ? ? NSString *searchString = city;

//? ? ? ? ? ? ? ? if (city.length>1) {

//? ? ? ? ? ? ? ? ? ? NSString *temp = [city substringFromIndex:(city.length-1)];

//? ? ? ? ? ? ? ? ? ? if ([@"市" isEqualToString:temp]) {

//? ? ? ? ? ? ? ? ? ? ? ? searchString = [city substringToIndex:(city.length-1)];

//? ? ? ? ? ? ? ? ? ? }

//? ? ? ? ? ? ? ? }

//? ? ? ? ? ? ? ? [MXEncryptionKeyStore storeKeyForeEncryption:searchString andWitchKey:LocationCity];

//? ? ? ? ? ? }

//? ? ? ? ? ? self.cityName = city;

}

else if (error == nil && [array count] == 0)

{

NSLog(@"No results were returned.");

}

else if (error != nil)

{

NSLog(@"An error occurred = %@", error);

}

}];

//系統(tǒng)會一直更新數(shù)據(jù)荞胡,直到選擇停止更新,因?yàn)槲覀冎恍枰@得一次經(jīng)緯度即可了嚎,所以獲取之后就停止更新

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泪漂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子歪泳,更是在濱河造成了極大的恐慌萝勤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呐伞,死亡現(xiàn)場離奇詭異敌卓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伶氢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門趟径,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘪吏,“玉大人,你說我怎么就攤上這事蜗巧≌泼撸” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵幕屹,是天一觀的道長蓝丙。 經(jīng)常有香客問我,道長望拖,這世上最難降的妖魔是什么渺尘? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮说敏,結(jié)果婚禮上鸥跟,老公的妹妹穿的比我還像新娘。我一直安慰自己盔沫,他們只是感情好医咨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迅诬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪婿牍。 梳的紋絲不亂的頭發(fā)上侈贷,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音等脂,去河邊找鬼俏蛮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛上遥,可吹牛的內(nèi)容都是我干的搏屑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼粉楚,長吁一口氣:“原來是場噩夢啊……” “哼辣恋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起模软,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤伟骨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后燃异,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體携狭,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年回俐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逛腿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稀并。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖单默,靈堂內(nèi)的尸體忽然破棺而出碘举,到底是詐尸還是另有隱情,我是刑警寧澤雕凹,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布殴俱,位于F島的核電站,受9級特大地震影響枚抵,放射性物質(zhì)發(fā)生泄漏线欲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一汽摹、第九天 我趴在偏房一處隱蔽的房頂上張望李丰。 院中可真熱鬧,春花似錦逼泣、人聲如沸趴泌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗜憔。三九已至,卻和暖如春氏仗,著一層夾襖步出監(jiān)牢的瞬間吉捶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工皆尔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呐舔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓慷蠕,卻偏偏與公主長得像珊拼,于是被迫代替她去往敵國和親流炕。 傳聞我的和親對象是個(gè)殘疾皇子澎现,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 現(xiàn)在很多...
    大崔老師閱讀 3,278評論 1 2
  • CoreLocation框架 一. iOS8.0之前的定位(?????) 1. 前臺定位 導(dǎo)入CoreLocati...
    0271fb6f797c閱讀 521評論 0 1
  • 簡介 在移動互聯(lián)網(wǎng)時(shí)代昔头,移動app能解決用戶的很多生活瑣事,比如 周邊:找餐館影兽、找KTV揭斧、找電影院等等 導(dǎo)航:根據(jù)...
    JonesCxy閱讀 1,188評論 1 1
  • 一. iOS8.0之前的定位(?????) 1. 前臺定位 導(dǎo)入CoreLocation框架以及對應(yīng)的主頭文件 #...
    走道牙的人閱讀 237評論 0 0
  • 又見你 漫天的星子 風(fēng)也柔和 同你走過的小徑 聞過的花香 還有露水打濕的衣裳 笑這癡傻的人兒 竟挽住歲月流轉(zhuǎn)? 回...
    細(xì)雨天閱讀 203評論 2 2