iOS開發之整合百度地圖踩過的那些坑(基於 Xcode7.0/iOS9.2),xcode7.0ios9.2

來源:互聯網
上載者:User

iOS開發之整合百度地圖踩過的那些坑(基於 Xcode7.0/iOS9.2),xcode7.0ios9.2

本篇分4步講述如何在項目中整合百度地圖:

第一步:建立項目第二步:利用 cocoaPod 匯入百度地圖的 SDK(pod 'BaiduMapKit' #百度地圖SDK)第三步:在 pch 檔案中匯入標頭檔和秘鑰

秘鑰是在 http://lbsyun.baidu.com/apiconsole/key 百度開放平台申請。

#define APPKEY @"UzyiXewPsqPhcE1yS8wxqik9"

在使用SDK的類時按需引入下邊的標頭檔

#import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相關所有的標頭檔 #import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地圖功能所有的標頭檔 #import <BaiduMapAPI_Search/BMKSearchComponent.h>//引入檢索功能所有的標頭檔 #import <BaiduMapAPI_Cloud/BMKCloudSearchComponent.h>//引入雲檢索功能所有的標頭檔 #import <BaiduMapAPI_Location/BMKLocationComponent.h>//引入定位功能所有的標頭檔 #import <BaiduMapAPI_Utils/BMKUtilsComponent.h>//引入計算工具所有的標頭檔 #import <BaiduMapAPI_Radar/BMKRadarComponent.h>//引入周邊雷達功能所有的標頭檔 #import < BaiduMapAPI_Map/BMKMapView.h>//只引入所需的單個標頭檔
第四步:在AppDelegate.m檔案中載入地圖管理者
- (BMKMapManager *)mapManager {    if (!_mapManager) {        _mapManager = [[BMKMapManager alloc] init];        BOOL ret = [_mapManager start:APPKEY generalDelegate:nil];        if (!ret) {            NSLog(@"manager start failed!");        } else {            NSLog(@"manager start success!");        }    }    return _mapManager;}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.    [self mapManager];    return YES;}

到此步,我們就可以正常運行百度地圖了。

但是,需要注意的是在控制台上會輸出以下資訊:

那麼我們按照要求一步步來就是了,首先在 plist 檔案中配置 Bundle display name,其實這是在Xcode6中需要配置的資訊,Xcode7中並沒有要求

<key>CFBundleDisplayName</key><string>$(PRODUCT_NAME)</string>

再次運行,地圖管理者便載入成功了,但是由於iOS9改用更安全的https,為了能夠在iOS9中正常使用百度地圖SDK,此時還需注入 ATS

<key>NSAppTransportSecurity</key><dict>    <key>NSAllowsArbitraryLoads</key>    <true/></dict>

此時雖然不會報錯,管理者同樣載入成功了,地圖的網格也有了,但是地圖詳細資料貌似不能顯示出來了。

這時檢查一下你的 key 是否正確,我是犯過一次,一定以保證申請 key 是的安全碼與項目的Bundle Identifier保持一致。

這時百度地圖便算是成功整合了。

 

注意:本篇文章中為說明的地方均未進行配置。

app在前後台切換時,需要使用下面的代碼停止地圖的渲染和openGL的繪製:

- (void)applicationWillResignActive:(UIApplication *)application {    [BMKMapView willBackGround];//當應用即將後台時調用,停止一切調用opengl相關的操作}- (void)applicationDidBecomeActive:(UIApplication *)application {    [BMKMapView didForeGround];//當應用恢複前台狀態時調用,回複地圖的渲染和opengl相關的操作}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.