今天繼續(xù)跟大家介紹百度地圖的用法,首先我們從基本的功能開(kāi)始费韭,定位是不可缺少的功能星持,我們就先從定位開(kāi)始。
1.首先需要在info.plist里添加(以下二選一羹令,兩個(gè)都添加默認(rèn)使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允許在前臺(tái)使用時(shí)獲取GPS的描述 NSLocationAlwaysUsageDescription 酒来,允許永久使用GPS的描述
2.然后導(dǎo)入頭文件 BaiduMapAPI/BMKLocationService.h
,并寫上代理 BMKLocationServiceDelegate
堰汉,然后我們初始化一個(gè)定位的BMKLocationService
類
如圖
3.然后我們添加一個(gè)定位的按鈕
它的點(diǎn)擊事件
4.然后我們把定位的代理寫上
//在地圖View將要啟動(dòng)定位時(shí)滴铅,會(huì)調(diào)用此函數(shù) (void)willStartLocatingUser { NSLog(@"開(kāi)始定位"); } //在地圖View停止定位后汉匙,會(huì)調(diào)用此函數(shù) (void)didStopLocatingUser { NSLog(@"停止定為"); } //定位失敗后,會(huì)調(diào)用此函數(shù) (void)didFailToLocateUserWithError:(NSError *)error { NSLog(@"定位失敗"); } //用戶方向更新后戏自,會(huì)調(diào)用此函數(shù) (void)didUpdateUserHeading:(BMKUserLocation *)userLocation { [mapView updateLocationData:userLocation]; // NSLog(@"位置在 %@",userLocation.heading); } //用戶位置更新后伤锚,會(huì)調(diào)用此函數(shù) (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation { // NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude); [mapView updateLocationData:userLocation]; }
這些事定位的代理屯援,一定要都寫上,不然無(wú)法顯示阅懦。
還有下面的也一定要加上
最后我們來(lái)看一下運(yùn)行起來(lái)的效果
下面我說(shuō)一下注意事項(xiàng):
- 代理記得一定要寫上寫全耳胎,有一個(gè)漏掉的就可能會(huì)導(dǎo)致無(wú)法顯示定位
- 模擬器有時(shí)候會(huì)無(wú)法定位惕它,需要你設(shè)置一下才行
打開(kāi)模擬器在上面找到Debug->Location->Custom Location 在里面設(shè)置位置坐標(biāo)淹魄,如果設(shè)置了還不管用的話可以切換別的在切換回來(lái)試試,也可以用真機(jī)來(lái)運(yùn)行
- 點(diǎn)擊定位后的觸發(fā)事件里一定要記得加上
mapView.userTrackingMode = BMKUserTrackingModeNone; mapView.showsUserLocation = YES;
- 還有info.plist里面別忘了加上上面提到的
NSLocationWhenInUseUsageDescription
兆蕉,否則也是無(wú)法定位的缤沦。
好了這就是百度地圖的手動(dòng)定位,定位比較簡(jiǎn)單包蓝,希望能幫助到大家企量,后期我還會(huì)繼續(xù)更新百度地圖的其他功能届巩,如果有寫的不好的地方希望大家能提出寶貴的意見(jiàn)!謝謝M筮蟆!孝凌!