最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS百度地圖簡單使用詳解

 更新時間:2016年11月07日 12:02:54   作者:朱凱奇  
百度地圖的功能有很多,本篇文章主要介紹了iOS百度地圖簡單使用詳解,具有一定的參考價值,有需要的可以了解一下。

百度地圖 iOS SDK是一套基于iOS 5.0及以上版本設(shè)備的應用程序接口,不僅提供展示地圖的基本接口,還提供POI檢索、路徑規(guī)劃、地圖標注、離線地圖、定位、周邊雷達等豐富的LBS能力 。

今天主要介紹以下接口

  • 基礎(chǔ)地圖
  • POI檢索
  • 定位

首先配置環(huán)境

1.自動配置.framework形式開發(fā)包(使用CocoaPods)<推薦>

2.手動配置.framework形式開發(fā)包

特別注意:
(API里有很多注意點,大家可以具體去看.但是我說的后兩點少其中一個都會失敗,第一點是有需求的話,必須加上)

1、如果在iOS9中使用了調(diào)起百度地圖客戶端功能,必須在"Info.plist"中進行如下配置,否則不能調(diào)起百度地圖客戶端。

  <key>LSApplicationQueriesSchemes</key>
  <array>
    <string>baidumap</string>
  </array>

2、自iOS SDK v2.5.0起,為了對iOS8的定位能力做兼容,需要在info.plist里添加(以下二選一,兩個都添加默認使用 NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允許在前臺使用時獲取GPS的描述
NSLocationAlwaysUsageDescription ,允許永久使用GPS的描述

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

配置完成后

AppDelegate.m文件中添加對BMKMapManager的初始化,并填入申請的授權(quán)Key

#import "AppDelegate.h"
#import <BaiduMapAPI_Base/BMKMapManager.h>
@interface AppDelegate ()

@end

@implementation AppDelegate


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

//創(chuàng)建并初始化一個引擎對象
  BMKMapManager *manager = [[BMKMapManager alloc] init];
//啟動地圖引擎
  BOOL success = [manager start:@"zBWLNgRUrTp9CVb5Ez6gZpNebljmYylO" generalDelegate:nil];

  if (!success) {
    NSLog(@"失敗");
  }
  // Override point for customization after application launch.
  return YES;
}

1.基礎(chǔ)地圖

#import "ViewController.h"
#import <BaiduMapAPI_Map/BMKMapView.h>
@interface ViewController ()<BMKMapViewDelegate>

@property (nonatomic,strong) BMKMapView *mapView;//地圖視圖
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
   //初始化地圖
  self.mapView = [[BMKMapView alloc] initWithFrame:self.view.frame];
  self.mapView.delegate =self;
  //設(shè)置地圖的顯示樣式
  self.mapView.mapType = BMKMapTypeSatellite;//衛(wèi)星地圖

  //設(shè)定地圖是否打開路況圖層
  self.mapView.trafficEnabled = YES;

  //底圖poi標注
  self.mapView.showMapPoi = NO;

  //在手機上當前可使用的級別為3-21級
  self.mapView.zoomLevel = 21;

  //設(shè)定地圖View能否支持旋轉(zhuǎn)
  self.mapView.rotateEnabled = NO;

  //設(shè)定地圖View能否支持用戶移動地圖
  self.mapView.scrollEnabled = NO;

  //添加到view上
  [self.view addSubview:self.mapView];

  //還有很多屬性,根據(jù)需求查看API
}

運行效果入下;

2.定位

#import "ViewController.h"
#import <BaiduMapAPI_Map/BMKMapView.h>
#import <BaiduMapAPI_Location/BMKLocationService.h>
@interface ViewController ()<BMKLocationServiceDelegate,BMKMapViewDelegate>

@property (nonatomic,strong) BMKMapView *mapView;//地圖視圖
@property (nonatomic,strong) BMKLocationService *service;//定位服務

@end

@implementation ViewController


- (void)viewDidLoad {
  [super viewDidLoad];

   //初始化地圖
  self.mapView = [[BMKMapView alloc] initWithFrame:self.view.frame];
  self.mapView.delegate =self;

  //添加到view上
  [self.view addSubview:self.mapView];

  //初始化定位
  self.service = [[BMKLocationService alloc] init];

  //設(shè)置代理
  self.service.delegate = self;

  //開啟定位
  [self.service startUserLocationService];


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

#pragma mark -------BMKLocationServiceDelegate 

/**
 *用戶位置更新后,會調(diào)用此函數(shù)
 *@param userLocation 新的用戶位置
 */
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation {


  //展示定位
  self.mapView.showsUserLocation = YES;

  //更新位置數(shù)據(jù)
  [self.mapView updateLocationData:userLocation];

  //獲取用戶的坐標
   self.mapView.centerCoordinate = userLocation.location.coordinate;

   self.mapView.zoomLevel =18;

}

運行結(jié)果

POI檢索

#import "ViewController.h"
#import <BaiduMapAPI_Map/BMKMapView.h>
#import <BaiduMapAPI_Location/BMKLocationService.h>
#import <BaiduMapAPI_Search/BMKPoiSearch.h>
#import <BaiduMapAPI_Map/BMKAnnotation.h>
#import <BaiduMapAPI_Map/BMKPointAnnotation.h>
#import <BaiduMapAPI_Map/BMKPinAnnotationView.h>


#define kWidth [UIScreen mainScreen].bounds.size.width
@interface ViewController ()<BMKLocationServiceDelegate,BMKPoiSearchDelegate,BMKMapViewDelegate>

@property (nonatomic,strong) BMKMapView *mapView;//地圖視圖
@property (nonatomic,strong) BMKLocationService *service;//定位服務
@property (nonatomic,strong) BMKPoiSearch *poiSearch;//搜索服務

@property (nonatomic,strong) NSMutableArray *dataArray;
@end

@implementation ViewController

- (NSMutableArray *)dataArray {
  if (!_dataArray) {
    _dataArray = [NSMutableArray array];

  }
  return _dataArray;

}
- (void)viewDidLoad {
  [super viewDidLoad];

  //初始化地圖
  self.mapView = [[BMKMapView alloc] initWithFrame:self.view.frame];
  self.mapView.delegate =self;
//  //設(shè)置地圖的顯示樣式
//  self.mapView.mapType = BMKMapTypeSatellite;//衛(wèi)星地圖
//  
//  //設(shè)置路況
//  self.mapView.trafficEnabled = YES;
//  
//  //底圖poi標注
//  self.mapView.showMapPoi = NO;
//  
//  //在手機上當前可使用的級別為3-21級
//  self.mapView.zoomLevel = 21;
//  
//  //旋轉(zhuǎn)
//  self.mapView.rotateEnabled = NO;
//  
//  //拖拽
//  self.mapView.scrollEnabled = NO;
//  

  [self.view addSubview:self.mapView];

  //初始化定位
  self.service = [[BMKLocationService alloc] init];

  //設(shè)置代理
  self.service.delegate = self;

  //開啟定位
  [self.service startUserLocationService];


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

#pragma mark -------BMKLocationServiceDelegate 


/**
 *用戶位置更新后,會調(diào)用此函數(shù)
 *@param userLocation 新的用戶位置
 */
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation {


  //展示定位
  self.mapView.showsUserLocation = YES;

  //更新位置數(shù)據(jù)
  [self.mapView updateLocationData:userLocation];

  //獲取用戶的坐標
   self.mapView.centerCoordinate = userLocation.location.coordinate;

   self.mapView.zoomLevel =18;

 

  //初始化搜索
  self.poiSearch =[[BMKPoiSearch alloc] init];


  self.poiSearch.delegate = self;

 

  //初始化一個周邊云檢索對象
  BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc] init];

  //索引 默認為0
  option.pageIndex = 0;

  //頁數(shù)默認為10
  option.pageCapacity = 50;

  //搜索半徑
  option.radius = 200;

  //檢索的中心點,經(jīng)緯度
  option.location = userLocation.location.coordinate;

  //搜索的關(guān)鍵字
  option.keyword = @"小吃";

 

   //根據(jù)中心點、半徑和檢索詞發(fā)起周邊檢索
  BOOL flag = [self.poiSearch poiSearchNearBy:option];
  if (flag) {
    NSLog(@"搜索成功");
    //關(guān)閉定位
    [self.service stopUserLocationService];
  }
  else {

    NSLog(@"搜索失敗");
  }

}


#pragma mark -------BMKPoiSearchDelegate
/**
 *返回POI搜索結(jié)果
 *@param searcher 搜索對象
 *@param poiResult 搜索結(jié)果列表
 *@param errorCode 錯誤號,@see BMKSearchErrorCode
 */
- (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPoiResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode {

   //若搜索成功
  if (errorCode ==BMK_SEARCH_NO_ERROR) {

    //POI信息類
    //poi列表
    for (BMKPoiInfo *info in poiResult.poiInfoList) {

      [self.dataArray addObject:info];

      //初始化一個點的注釋 //只有三個屬性
      BMKPointAnnotation *annotoation = [[BMKPointAnnotation alloc] init];

      //坐標
      annotoation.coordinate = info.pt;

      //title
      annotoation.title = info.name;

      //子標題
      annotoation.subtitle = info.address;

      //將標注添加到地圖上
      [self.mapView addAnnotation:annotoation];
    }
  }


}

/**
 *返回POI詳情搜索結(jié)果
 *@param searcher 搜索對象
 *@param poiDetailResult 詳情搜索結(jié)果
 *@param errorCode 錯誤號,@see BMKSearchErrorCode
 */
- (void)onGetPoiDetailResult:(BMKPoiSearch *)searcher result:(BMKPoiDetailResult *)poiDetailResult errorCode:(BMKSearchErrorCode)errorCode {

  NSLog(@"%@",poiDetailResult.name);

}


#pragma mark -------------BMKMapViewDelegate

/**
 *根據(jù)anntation生成對應的View
 *@param mapView 地圖View
 *@param annotation 指定的標注
 *@return 生成的標注View
 */
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation {

  //如果是注釋點
  if ([annotation isKindOfClass:[BMKPointAnnotation class]]) {

    //根據(jù)注釋點,創(chuàng)建并初始化注釋點視圖
    BMKPinAnnotationView *newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"an"];

    //設(shè)置大頭針的顏色
    newAnnotation.pinColor = BMKPinAnnotationColorRed;

    //設(shè)置動畫
    newAnnotation.animatesDrop = YES;

    return newAnnotation;

  }

  return nil;
}
/**
 *當選中一個annotation views時,調(diào)用此接口
 *@param mapView 地圖View
 *@param views 選中的annotation views
 */
- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view {

  //poi詳情檢索信息類
  BMKPoiDetailSearchOption *option = [[BMKPoiDetailSearchOption alloc] init];


  BMKPoiInfo *info = self.dataArray.firstObject;

  //poi的uid,從poi檢索返回的BMKPoiResult結(jié)構(gòu)中獲取
  option.poiUid = info.uid;

  /**
   *根據(jù)poi uid 發(fā)起poi詳情檢索
   *異步函數(shù),返回結(jié)果在BMKPoiSearchDelegate的onGetPoiDetailResult通知
   *@param option poi詳情檢索參數(shù)類(BMKPoiDetailSearchOption)
   *@return 成功返回YES,否則返回NO
   */
  BOOL flag = [self.poiSearch poiDetailSearch:option];

  if (flag) {
    NSLog(@"檢索成功");
  }
  else {

    NSLog(@"檢索失敗");
  }

 

}

運行結(jié)果

總結(jié)

百度地圖的功能很強大,還有很多檢索,都沒有寫.大家又興趣可以鉆研下,畢竟第三方的接口文檔相對比較明了.以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS像素對齊概念解析

    iOS像素對齊概念解析

    這篇文章主要為大家詳細介紹了iOS像素對齊概念,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS使用Charts框架繪制柱形圖

    iOS使用Charts框架繪制柱形圖

    本文主要介紹了iOS使用Charts框架繪制柱形圖的方法,具有一定的參考價值,下面跟著小編一起來看下吧
    2016-12-12
  • iOS中UIView實現(xiàn)不同方向的導角

    iOS中UIView實現(xiàn)不同方向的導角

    這篇文章主要給大家介紹了關(guān)于iOS中UIView實現(xiàn)不同方向的導角的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或使用iOS具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • iOS開發(fā)使用JSON解析網(wǎng)絡數(shù)據(jù)

    iOS開發(fā)使用JSON解析網(wǎng)絡數(shù)據(jù)

    JSON是一種輕量級的數(shù)據(jù)格式,一般用于數(shù)據(jù)交互,服務器返回給客戶端的數(shù)據(jù),一般都是JSON格式或者XML格式(文件下載除外)下面我們就看下在IOS開發(fā)中如何結(jié)合json呢
    2016-02-02
  • iOS UIAlertView自動關(guān)閉功能

    iOS UIAlertView自動關(guān)閉功能

    這篇文章主要介紹了iOS UIAlertView自動關(guān)閉,需要的朋友可以參考下
    2017-06-06
  • iOS 讀取URL圖片并存儲到本地的實例

    iOS 讀取URL圖片并存儲到本地的實例

    下面小編就為大家?guī)硪黄猧OS 讀取URL圖片并存儲到本地的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • IOS 自定義UICollectionView的頭視圖或者尾視圖UICollectionReusableView

    IOS 自定義UICollectionView的頭視圖或者尾視圖UICollectionReusableView

    這篇文章主要介紹了IOS 自定義UICollectionView的頭視圖或者尾視圖UICollectionReusableView的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • IOS中html5上傳圖片方向問題解決方法

    IOS中html5上傳圖片方向問題解決方法

    這篇文章主要介紹了IOS中html5上傳圖片方向問題解決方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • iOS性能優(yōu)化教程之頁面加載速率詳解

    iOS性能優(yōu)化教程之頁面加載速率詳解

    在軟件開發(fā)領(lǐng)域里經(jīng)常能聽到這樣一句話,“過早的優(yōu)化是萬惡之源”,不要過早優(yōu)化或者過度優(yōu)化。下面這篇文章主要給大家介紹了關(guān)于iOS性能優(yōu)化教程之頁面加載速率的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • IOS倒計時設(shè)置UIButton標題title的抖動問題

    IOS倒計時設(shè)置UIButton標題title的抖動問題

    這篇文章主要介紹了IOS倒計時設(shè)置UIButton標題title的抖動問題,在發(fā)送驗證碼后,button狀態(tài)需要變?yōu)閐isable,每隔一秒顯示倒計時時間,下面通過本文給大家介紹設(shè)置方法,一起看看吧
    2016-12-12

最新評論

平远县| 从江县| 视频| 盐池县| 石嘴山市| 成安县| 锦州市| 祁门县| 北海市| 仪陇县| 阿拉善右旗| 怀化市| 开原市| 于都县| 南宫市| 昭通市| 巨鹿县| 瑞丽市| 瓦房店市| 南部县| 合水县| 姚安县| 玛曲县| 灯塔市| 马山县| 衡阳市| 清徐县| 改则县| 富平县| 博湖县| 西城区| 光泽县| 凌云县| 隆化县| 望都县| 鲜城| 陵川县| 牙克石市| 景泰县| 潞西市| 辉县市|