百度地圖使用筆記

創(chuàng)建地圖
  1. 創(chuàng)建開發(fā)者賬號
  2. 創(chuàng)建應用 申請秘鑰
  3. 在工程中將ViewController.mm 因為SDK有一部分是以C++寫的

靜態(tài)庫中采用ObjectC++實現,因此需要您保證您工程中至少有一個.mm后綴的源文件(您可以將任意一個.m后綴的文件改名為.mm),或者在工程屬性中指定編譯方式,即將Xcode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As設置為"Objective-C++"

ViewController
  1. 修改plis文件
    在plist文件中添加
    • NSLocationAlwaysUsageDescription
    • NSLocationWhenInUseUsageDescription
    • BaiduNew
plist
  1. 配置環(huán)境

導入百度提供的.framework包

添加包

引入所需的系統庫
百度地圖SDK中提供了定位功能和動畫效果烦却,v2.0.0版本開始使用OpenGL渲染疆偿,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework胚嘲、SystemConfiguration.framework、CoreGraphics.framework洛二、Security.framework馋劈、libsqlite3.0.tbd(xcode7以前為 libsqlite3.0.dylib)、CoreTelephony.framework 晾嘶、libstdc++.6.0.9.tbd(xcode7以前為libstdc++.6.0.9.dylib)侣滩。
(注:加粗標識的系統庫為v2.9.0新增的系統庫,使用v2.9.0及以上版本的地圖SDK变擒,務必增加導入這3個系統庫君珠。)

最后

在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。
** 注意大小寫**


-ObjC
  1. 引入mapapi.bundle資源文件
    方法:選中工程名娇斑,在右鍵菜單中選擇Add Files to “工程名”…策添,從BaiduMapAPI_Map.framework||Resources文件中選擇mapapi.bundle文件,并勾選“Copy items if needed”復選框毫缆,單擊“Add”按鈕唯竹,將資源文件添加到工程中。
屏幕快照 2015-12-08 09.58.39.png
屏幕快照 2015-12-08 09.58.45.png
屏幕快照 2015-12-08 09.58.49.png
  1. 添加頭文件

import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相關所有的頭文件
import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地圖功能所有的頭文件

AppDelegate

添加屬性
@property (nonatomic, strong)BMKMapManager *manager;
簽協議
<BMKGeneralDelegate>
初始化

- (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;  
}

實現協議方法

/**
 *  獲取網絡狀態(tài)
 */
-(void)onGetNetworkState:(int)iError {

    if (iError == 0) {
        NSLog(@"聯網成功");
    } else {
        NSLog(@"聯網失敗");
    }

}
/**
 *  獲取授權狀態(tài)
 */
-(void)onGetPermissionState:(int)iError {

    if (iError == 0) {
        NSLog(@"獲取授權成功");
    } else {
        NSLog(@"獲取授權失敗");
    }

}
  • 進入后臺 進入前臺
- (void)applicationWillResignActive:(UIApplication *)application {

    [BMKMapView willBackGround];
}

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

    [BMKMapView didForeGround];
}
  • 在storyBoard 添加NavigationController


    屏幕快照 2015-12-08 10.13.02.png

添加一個View

屏幕快照 2015-12-08 10.15.06.png

使其繼承于BMKMaoView

屏幕快照 2015-12-08 10.15.42.png

這時候運行一下


屏幕快照 2015-12-08 10.17.04.png
添加功能
  • 在之前的view上添加Button 讓其顯示在View上
  • 引入頭文件 拖拽view添加屬性
#import "ViewController.h"
#import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相關所有的頭文件
#import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地圖功能所有的頭文件
@interface ViewController ()
@property (weak, nonatomic) IBOutlet BMKMapView *mapView;

@end
  • 簽代理 <BMKMapViewDelegate>
-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.mapView.delegate = self;
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    self.mapView.delegate = nil;

}
  • view 上再添加一個View 黑色 Alpha0.6

  • 拖拽Button和灰色View添加屬性


    如圖
  • button 添加點擊事件

- (IBAction)showSView:(id)sender {
    NSLog(@"SDFSDFAS");
    if (self.sView.alpha == 0) {
        [UIView animateWithDuration:0.2 animations:^{
            self.sView.alpha = 0.6;
        }];
    } else {
        [UIView animateWithDuration:0.2 animations:^{
            self.sView.alpha = 0;
        }];
    }

}
  • 添加label 和 switch
屏幕快照 2015-12-08 11.34.01.png
  • 衛(wèi)星地圖switch點擊事件
- (IBAction)switchMapType:(id)sender {

    UISwitch *mySwitch = (UISwitch *)sender;

    [self.mapView setMapType:mySwitch.on == YES ? BMKMapTypeSatellite : BMKMapTypeStandard];

}
  • 添加實時路況同上:


    屏幕快照 2015-12-08 11.45.26.png

實時了路況點擊事件:

- (IBAction)switchMapLoade:(id)sender {

    UISwitch *mySwitch = (UISwitch *)sender;

    self.mapView.trafficEnabled = mySwitch.on;

}
  • 添加熱力圖


    熱力圖
- (IBAction)showHeat:(id)sender {

    UISwitch *mySwitch = (UISwitch *)sender;

    self.mapView.baiduHeatMapEnabled = mySwitch.on;

}
  • 添加四個Button 分別拖拽為屬性 如圖


    添加Button

    在viewDidLoad里隱藏上面三個Button

  self.followButton.alpha = 0;
    self.headButton.alpha = 0;
    self.endButton.alpha = 0;
  • 給開始定位按鈕添加點擊事件 使上面三個Button出現開始定位按鈕隱藏
- (IBAction)startLocation:(id)sender {


        [UIView animateWithDuration:0.3 animations:^{
            self.startButton.alpha = 0;
            self.followButton.alpha = 1;
            self.headButton.alpha = 1;
            self.endButton.alpha = 1;
            self.sView.alpha = 0;
        }];

}
  • 引入定位功能的頭文件
    #import <BaiduMapAPI_Location/BMKLocationComponent.h>//引入定位功能所有的頭文件
  • 添加屬性
    @property (nonatomic, strong) BMKLocationService *locationService;
    *簽代理
    BMKLocationServiceDelegate
    *初始化
    self.locationService = [[BMKLocationService alloc] init];
  • 簽代理
    self.locationService.delegate =self;
  • 在開始定位時啟動本地定位 開始定位的點擊事件里添加
    [self.locationService startUserLocationService]; [self.mapView showsUserLocation];
  • 在關閉定位的點擊事件中關閉定位
    [self.locationService stopUserLocationService]; self.mapView.showsUserLocation = NO;
  • 添加代理方法
/**
 * 地圖更新
 */
-(void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation {
    [self.mapView updateLocationData:userLocation];
}

未完待續(xù).......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旺拉,隨后出現的幾起案子产上,更是在濱河造成了極大的恐慌,老刑警劉巖蛾狗,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晋涣,死亡現場離奇詭異,居然都是意外死亡沉桌,警方通過查閱死者的電腦和手機谢鹊,發(fā)現死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門算吩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人佃扼,你說我怎么就攤上這事偎巢。” “怎么了兼耀?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵艘狭,是天一觀的道長。 經常有香客問我翠订,道長巢音,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任尽超,我火速辦了婚禮官撼,結果婚禮上,老公的妹妹穿的比我還像新娘似谁。我一直安慰自己傲绣,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布巩踏。 她就那樣靜靜地躺著秃诵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪塞琼。 梳的紋絲不亂的頭發(fā)上菠净,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音彪杉,去河邊找鬼毅往。 笑死,一個胖子當著我的面吹牛派近,可吹牛的內容都是我干的攀唯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼渴丸,長吁一口氣:“原來是場噩夢啊……” “哼侯嘀!你這毒婦竟也來了?” 一聲冷哼從身側響起谱轨,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤戒幔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碟嘴,有當地人在樹林里發(fā)現了一具尸體溪食,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年娜扇,在試婚紗的時候發(fā)現自己被綠了错沃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡雀瓢,死狀恐怖枢析,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情刃麸,我是刑警寧澤醒叁,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站泊业,受9級特大地震影響把沼,放射性物質發(fā)生泄漏。R本人自食惡果不足惜吁伺,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一饮睬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧篮奄,春花似錦捆愁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至夸赫,卻和暖如春菩帝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茬腿。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工胁附, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滓彰。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓控妻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親揭绑。 傳聞我的和親對象是個殘疾皇子弓候,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,513評論 25 707
  • 各位小伙伴們大家好,今天我向大家介紹一下蘋果百度地圖的使用方法他匪,因為做過一些想關的APP菇存,感覺百度地圖還是挺方便的...
    Lee0528閱讀 14,659評論 18 46
  • 1.申請密鑰(key) http://lbsyun.baidu.com/apiconsole/key 第一步:打開...
    3ad997c871e9閱讀 2,087評論 0 0
  • 最新百度地圖使用注意事項(在使用中出現了引擎失敗的家在錯誤,下邊是注意事項) 第一步邦蜜、引入BaiduMapAPI....
    寒橋閱讀 2,944評論 3 5
  • 午間烈日炙鄉(xiāng)村 白楊樹下來了群乘涼人 知了屏息聽農諺 鳥兒瞅著阿婆剝花生 張長李短尋常事 海侃爭執(zhí)請度娘 嘮得最多...
    田園壟畝梅德萌閱讀 300評論 3 3