zoukankan      html  css  js  c++  java
  • 百度地图集成--二

    参考官方文档 --> 申请秘钥 --> 配置开发环境 --> Hello BaiduMap --> 注意事项

    --> 注意Bundle ID(官方文档没有提示)

    先创建一个百度地图文件  进行如下操作

    在使用SDK的类 按需 引入下边的头文件:(appdelegte 中  和 viewController 中分别导入以下头文件)

    #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>//只引入所需的单个头文件


    #import "ViewController.h"
    
    #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>//只引入所需的单个头文件
    
    @interface ViewController ()<BMKMapViewDelegate, BMKPoiSearchDelegate>
    {
        BMKMapView *_mapView;
        
        BMKPoiSearch *_searcher;
    }
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //1. 创建百度地图
        _mapView = [[BMKMapView alloc]init];
        self.view = _mapView;
        
        //2. 切换为卫星图
        //[_mapView setMapType:BMKMapTypeSatellite];
        
        //3. 添加一个PointAnnotation
        BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
        CLLocationCoordinate2D coor;
        coor.latitude = 39.915;
        coor.longitude = 116.404;
        annotation.coordinate = coor;
        annotation.title = @"这里是北京";
        [_mapView addAnnotation:annotation];
        
        //4.POI检索代码
        [self performSelector:@selector(poiSearch) withObject:nil afterDelay:2];
        
        //5.设置地图显示层级 3最大, 20最小
        [_mapView setZoomLevel:16];
        
    }
    
    #pragma mark POI检索代码
    - (void)poiSearch
    {
        //1. 初始化检索对象
        _searcher =[[BMKPoiSearch alloc]init];
        _searcher.delegate = self;
        
        //2. 发起检索 --> 拼接参数
        BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init];
        //分页索引,可选,默认为0
        option.pageIndex = 0;
        //分页数量,可选,默认为10,最多为50
        option.pageCapacity = 10;
        
        option.location = CLLocationCoordinate2DMake(39.915, 116.404);
        option.keyword = @"小吃";
        
        BOOL flag = [_searcher poiSearchNearBy:option];
        if(flag)
        {
            NSLog(@"周边检索发送成功");
        }
        else
        {
            NSLog(@"周边检索发送失败");
        }
        
    }
    
    //实现PoiSearchDeleage处理回调结果
    - (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList errorCode:(BMKSearchErrorCode)error
    {
        if (error == BMK_SEARCH_NO_ERROR) {
            //在此处理正常结果
            
            // 添加大头针 / 显示一个列表给用户
            
            for (BMKPoiInfo *poiInfo in poiResultList.poiInfoList) {
                
                BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
                annotation.coordinate = poiInfo.pt;
                annotation.title = poiInfo.name;
                [_mapView addAnnotation:annotation];
            }
            
            
        }
        else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){
            //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表
            // result.cityList;
            NSLog(@"起始点有歧义");
        } else {
            NSLog(@"error: %zd",error);
            NSLog(@"抱歉,未找到结果");
        }
    }
    
    
    - (void)viewWillAppear:(BOOL)animated
    {
        [_mapView viewWillAppear];
        _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
    }
    
    - (void)viewWillDisappear:(BOOL)animated
    {
        [_mapView viewWillDisappear];
        _mapView.delegate = nil; // 不用时,置nil
        _searcher.delegate = nil; //不使用时将delegate设置为 nil
    }
    
    @end

     
  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/huangfang1314/p/5641760.html
Copyright © 2011-2022 走看看