IOS百度地圖之--->第一篇《環境配置與基本使用》,百度地圖sdkios

來源:互聯網
上載者:User

IOS百度地圖之--->第一篇《環境配置與基本使用》,百度地圖sdkios

Ios 百度地圖SDK簡易使用說明:http://developer.baidu.com/map/index.php?title=iossdk 

先道歉:對於原來上傳的Demo我很抱歉,什麼都沒有,也沒有文檔,這次我會逐步增加SDK中相關功能使用(基於百度Simple),如果我寫不好請大家多多包含;

第一步:合成靜態檔案

lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -output libbaidumapapi.a

註:目錄可能不一致

第二步:環境配置

1、在Xcode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC

2、引入frameWork引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。

3、修改一個.m 檔案尾碼為.mm;此時測試一下看工程是否正常

4、增加pch(可有可無)

5、自iOS SDK v2.5.0起,為了對iOS8的定位能力做相容,做了相應的修改,開發人員在使用過程中注意事項如下: 需要在info.plist裡添加(以下二選一,兩個都添加預設使用NSLocationWhenInUseUsageDescription):NSLocationWhenInUseUsageDescription ,允許在前台使用時擷取GPS的描述NSLocationAlwaysUsageDescription ,允許永久使用GPS的描述。

6、在使用Xcode6進行SDK開發過程中,需要在info.plist中添加:Bundle display name ,且其值不可為空(Xcode6建立的項目沒有此配置,若沒有會造成manager start failed);

7、BMKMapView新增viewWillAppear、viewWillDisappear方法來控制BMKMapView的生命週期,並且在一個時刻只能有一個BMKMapView接受回調訊息,因此在使用BMKMapView

viewController中需要在viewWillAppear、viewWillDisappear方法中調用BMKMapView的對應的方法,並處理delegate,代碼如下:

-(void)viewWillAppear:(BOOL)animated

{

    [_mapViewviewWillAppear];

    _mapView.delegate = self;// 此處記得不用的時候需要置nil,否則影響記憶體的釋放

    //啟動LocationService

    [_locationServicestartUserLocationService];

}

-(void)viewWillDisappear:(BOOL)animated

{

    [_mapViewviewWillDisappear];

    _mapView.delegate = nil; // 不用時,置nil

}

第三步:基本使用載入

1、引用#import "BMapKit.h" ,在AppDelegate.h中聲明

@interface AppDelegate : UIResponder <UIApplicationDelegate>

 

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) BMKMapManager *mapManager;

 

@end

2、在AppDelegate.m中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    _mapManager = [[BMKMapManageralloc] init];

//    BaiduMapKey  你申請的百度地圖AK(宏定義)

    if (![_mapManagerstart:BaiduMapKeygeneralDelegate:self])

    {

        KHLog(@"啟動失敗");//KHLog 相當於NSLog

    }

    returnYES;

}

-(void)onGetNetworkState:(int)iError

{

    if (iError == 0)

    {

        KHLog(@"網路狀態正常");

    }

    else

    {

        KHLog(@"網路錯誤:%d",iError);

    }

}

-(void)onGetPermissionState:(int)iError

{

    if (iError == 0)

    {

        KHLog(@"授權正常");

    }

    else

    {

        KHLog(@"授權錯誤:%d",iError);

    }

}

- (void)applicationWillResignActive:(UIApplication *)application {

    [BMKMapView willBackGround];//當應用即將後台時調用,停止一切調用opengl相關的操作

}

- (void)applicationDidBecomeActive:(UIApplication *)application {

    [BMKMapView didForeGround];//當應用恢複前台狀態時調用,回複地圖的渲染和opengl相關的操作

}

3、在要載入mapview的controller中增加代理 BMKMapViewDelegate

聲明 BMKMapView *_mapView;

註:#define __SCREEN_SIZE [[UIScreen mainScreen] bounds].size

- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    _mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 0, __SCREEN_SIZE.width, __SCREEN_SIZE.height)];

    [self.view addSubview:_mapView];

    [_mapViewsetMapType:BMKMapTypeStandard];//地圖樣式

//    [_mapView setTrafficEnabled:YES];//開啟即時路況圖層

//    [_mapView setBaiduHeatMapEnabled:YES];//開啟百度城市熱力圖圖層(百度自有資料)

}

 -(void)viewWillAppear:(BOOL)animated

{

    [_mapViewviewWillAppear];

     _mapView.delegate = self;// 此處記得不用的時候需要置nil,否則影響記憶體的釋放

 }

 -(void)viewWillDisappear:(BOOL)animated

 {

      [_mapViewviewWillDisappear]; 

    _mapView.delegate = nil; // 不用時,置nil 

}

 - (void)mapViewDidFinishLoading:(BMKMapView *)mapView

 {

    KHLog(@"地圖載入完畢載入完畢”);//這裡的代理方法我就不一一展示了,具體使用方式請自己調整

 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.