iOS百度地图探索

新建工程后,几项准备:

1、工程中一个文件设为.mm后缀

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

3、 设置静态库的链接路径,在Xcode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的静态库目录,比如"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator

4、framework: CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework

5、自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):

NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述

NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述

首先要在appdelegate里面添加

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

定位:

@interface ViewController ()<BMKMapViewDelegate,BMKCloudSearchDelegate,BMKLocationServiceDelegate>
{
    BMKMapView* mapView;
    BMKCloudSearch* search;
    BMKLocationService* location;
}
 
- (void)viewDidLoad {
    [super viewDidLoad];
    CGRect rect = CGRectMake(0, 0, 320, 400);
    mapView = [[BMKMapView alloc] initWithFrame:rect];
    [self.view addSubview:mapView];
    mapView.showsUserLocation= YES;
    //搜索
    search = [[BMKCloudSearch alloc] init];
    search.delegate = self;
    //服务
    location = [[BMKLocationService alloc] init];
    location.delegate = self;
    [location startUserLocationService];
    mapView.showsUserLocation = NO;
    mapView.userTrackingMode = BMKUserTrackingModeFollowWithHeading;
    mapView.showsUserLocation = YES;
    //搜索按钮
    UIButton* btSearch = [UIButton buttonWithType:UIButtonTypeCustom];
    [btSearch setTitle:@"搜索" forState:UIControlStateNormal];
    [btSearch addTarget:self action:@selector(clickSearch:) forControlEvents:UIControlEventTouchUpInside];
    [btSearch setFrame:CGRectMake(0, 400, 320, 80)];
    [btSearch setTintColor:[UIColor whiteColor]];
    [btSearch setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [self.view addSubview:btSearch];
}
-(void)viewWillAppear:(BOOL)animated{
    [mapView viewWillAppear];
    mapView.delegate = self;
}
-(void)viewWillDisappear:(BOOL)animated{
    [mapView viewWillDisappear];
    mapView.delegate = nil;
}

mapview代理实现:

- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation
{
    [mapView updateLocationData:userLocation];
}
//处理位置坐标更新
- (void)didUpdateUserLocation:(BMKUserLocation *)userLocation
{
    [mapView updateLocationData:userLocation];
}

先记录这些,不用每次都去查百度蛋疼文档了。

  

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。