百度地图

百度地图集成简单来说分为4个步骤:

  1. 获取授权
  2. 添加地图
  3. 获取POI搜索结果
  4. 根据搜索结果添加大头针

下面我们来实际操作下:
- 在百度地图开放平台注册一个应用生成一个APPKey
- 通过APPKey获取授权(在程序入口)

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

    // 要使用百度地图,请先启动BaiduMapManager
    _mapManager = [[BMKMapManager alloc]init];
    BOOL ret = [_mapManager start:@"zFXgy83tLMTrfEUGbckigm1G" generalDelegate:self];
    if (!ret) {
        NSLog(@"manager start failed!");
    }

    return YES;
}
  • 添加地图到界面上 BMKMapView
    BMKMapView *mapView = [[BMKMapView alloc]initWithFrame:self.view.bounds];
    //依赖地图
    self.mapView = mapView;

    [self.view addSubview:mapView];
  • 拿POI搜索的结果 BMKPoiSearch
- (void)click:(UIButton *)btn
{
    //3.拿poi搜索的结果

    BMKCitySearchOption *option = [[BMKCitySearchOption alloc]init];

    option.city = @"北京";
    option.keyword = @"KTV";
    option.pageIndex = 1;
    option.pageCapacity = 50;


    BOOL success = [self.poisearch poiSearchInCity:option];

    if (success) {
        NSLog(@"检索成功!");
    }else{
        NSLog(@"检索失败!");
    }   
}
// 想要拿到搜索结果需要设置代理
-(void)viewWillAppear:(BOOL)animated {
    [_mapView viewWillAppear];
    _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
    self.poisearch.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
}

-(void)viewWillDisappear:(BOOL)animated {
    [_mapView viewWillDisappear];
    _mapView.delegate = nil; // 不用时,置nil
    _poisearch.delegate = nil; // 不用时,置nil
}
  • 根据结果添加大头针
// 检索结果通过代理告知外界
- (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPoiResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode
{

    for (BMKPointAnnotation *anno1 in self.mapView.annotations ) {
        [self.mapView removeAnnotation:anno1];
    }

    for (BMKPoiInfo *poiinfo in poiResult.poiInfoList) {
        NSLog(@"%@",poiinfo.name);

        //创建大头针模型
        BMKPointAnnotation *anno = [[BMKPointAnnotation alloc]init];
        anno.title = poiinfo.name;
        anno.subtitle = poiinfo.address;
        anno.coordinate = poiinfo.pt;

        //添加大头针模型

        [self.mapView addAnnotation:anno];

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值