我使用百度地圖感覺就像是坑了爹一樣,總會出現各種問題,今天我在這個博客裡面寫寫百度地圖有可能出的坑。
------------------
首先百度上打百度地圖API然後點擊進去,點擊開發,點擊IOS地圖SDK。
------------------
進到這個界面先點相關下載
------------------
進到這個裡面,直接點全部下載(藍色按鈕),下載完成後解壓縮
------------------
解壓縮完成後是這個樣子的,然後打開
-------------------
最後那個.DS_store沒有用,你們別被誤導,那個是我的隱藏文件,
我不會隱藏。。。
我不會隱藏。。。
我不會隱藏。。。
把zip文件解壓縮,就是下面的兩個藍色文件夾
------------------- 之後,回到概述,概述下面有個獲取密鑰,點一下會跳轉,點擊創建應用
NSAppTransportSecurity
LSApplicationQueriesSchemes一填加就可以了,剩下的內容不用看,直接點到配置開發環境
#import//引入base相關所有的頭文件 #import //引入地圖功能所有的頭文件 #import //引入檢索功能所有的頭文件 #import //引入雲檢索功能所有的頭文件 #import //引入定位功能所有的頭文件 #import //引入計算工具所有的頭文件 #import //引入周邊雷達功能所有的頭文件 #import //只引入所需的單個頭文件
------------------- 然後在你的 AppDelegate.h 裡面添加代理和屬性
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 要使用百度地圖,請先啟動BaiduMapManager _mapManager = [[BMKMapManager alloc]init]; // 如果要關注網絡及授權驗證事件,請設定 generalDelegate參數 BOOL ret = [_mapManager start:@"在此處輸入您的授權Key" generalDelegate:nil]; if (!ret) { NSLog(@"manager start failed!"); } // Add the navigation controller's view to the window and display. [self.window addSubview:navigationController.view]; [self.window makeKeyAndVisible]; return YES; }如果你要添加地圖功能的話,就在你要用的那個視圖上,打
- (void)viewDidLoad { [super viewDidLoad]; BMKMapView* mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; self.view = mapView; }
(void)viewWillAppear:(BOOL)animated { [_mapView viewWillAppear]; _mapView.delegate = self; // 此處記得不用的時候需要置nil,否則影響內存的釋放 } -(void)viewWillDisappear:(BOOL)animated { [_mapView viewWillDisappear]; _mapView.delegate = nil; // 不用時,置nil }地圖完成了,如果需要其他功能去這個網址上找 http://lbsyun.baidu.com/index.php?title=iossdk/guide/hellobaidumap ---------------------- 接下來,我要說下更加坑爹的定位,這個也是我用到百度地圖一直用到的功能,如果你想在一開始就得到定位請求的話,你需要在AppDelegate裡面寫這個內容
//初始化BMKLocationService _locService = [[BMKLocationService alloc]init]; _locService.delegate = self; //啟動LocationService [_locService startUserLocationService];然後寫
//實現相關delegate 處理位置信息更新 //處理方向變更信息 - (void)didUpdateUserHeading:(BMKUserLocation *)userLocation { //NSLog(@"heading is%@",userLocation.heading); } //處理位置坐標更新 - (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation { //NSLog(@"didUpdateUserLocation lat%f,long%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude); }如果不調用的話,請在info.plist裡面添加 NSLocationAlwaysUsageDescription