iOS百度地图POI的使用

97 篇文章 0 订阅
79 篇文章 2 订阅

1.首先要将你的APP导百度开放平台申请秘钥Key @"bovlxvEtLFd2GLggpm9tGmtA897lW5Lu",申请完后,将以下代码填写到AppDelegate.m中,在下面的方法调用

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

#pragma mark - 百度地图POI使用

-(void)applicationBaiDuMaps{
    _mapManager = [[BMKMapManager alloc]init];
    BOOL ret = [_mapManagerstart:@"bovlxvEtLFd2GLggpm9tGmtA897lW5Lu"generalDelegate:self];
    if (!ret) {
        NSLog(@"manager start failed!");
    }
}

 

2.下载iOS百度地图SDK以及相关的库

 

3.

在导入库以后,再到build phaese添加一些相关的库,这些库可以只导入你想使用的

4.接下来就是将build setting ->compile sources as 选择Object-C++或者将文件目录下的任意文件改成.mm后缀,但是我建议使用后者,并且更改创建工程时生成的ViewController

5.接下来就是简单的粘代码.h文件  导入

#import <BaiduMapAPI_Map/BMKMapComponent.h>
#import <BaiduMapAPI_Search/BMKSearchComponent.h>

在遵守相关协议

<BMKMapViewDelegate,BMKPoiSearchDelegate> {
    BMKMapView* _mapView;
    BMKPoiSearch* _poisearch;
    int curPage;
}


-(void)viewWillAppear:(BOOL)animated {
    [_mapView viewWillAppear];
    _mapView.delegate =self;// 此处记得不用的时候需要置nil,否则影响内存的释放
    _poisearch.delegate =self;// 此处记得不用的时候需要置nil,否则影响内存的释放
}


-(void)viewWillDisappear:(BOOL)animated {
    [_mapView viewWillDisappear];
    _mapView.delegate =nil;// 不用时,置nil
    _poisearch.delegate =nil;// 不用时,置nil
}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
    [self initPoiSearch:searchText];
}

-(void)initPoiSearch:(NSString*)searchText{
    _poisearch = [[BMKPoiSearch alloc]init];
    _poisearch.delegate =self;
    curPage =0;
    curPage =0;
    BMKCitySearchOption *citySearchOption = [[BMKCitySearchOption alloc]init];
    citySearchOption.pageIndex =curPage;
    citySearchOption.pageCapacity =10;
    citySearchOption.city=@"哈尔滨";
    citySearchOption.keyword = searchText;
    BOOL flag = [_poisearch poiSearchInCity:citySearchOption];
    if(flag){
        NSLog(@"城市内检索发送成功");
    }else{
        NSLog(@"城市内检索发送失败");
    }

}

#pragma mark --BMKPoiSearchDelegate

/**
 *返回POI搜索结果
 *@param searcher 搜索对象
 *@param poiResult 搜索结果列表
 *@param errorCode 错误号,@see BMKSearchErrorCode
 */
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResult errorCode:(BMKSearchErrorCode)errorCode{
    self.datasource = [[NSMutableArray alloc]init];
    if (errorCode ==BMK_SEARCH_NO_ERROR){
        for (int i =0; i < poiResult.poiInfoList.count; i++){
            BMKPoiInfo* poi = [poiResult.poiInfoListobjectAtIndex:i];//BMKPoiInfo就是检索出来的poi信息
          }
    }
}

运行以后数显18个左右的错误解决办法

第一个   添加这个字段

第二个 添加build Phases 中添加:

libstdc++.6.0.9 的库

 

添加完以后基本可以解决错误问题

 

打印的 BMKPoiInfo中的属性便是解析返回的结果 
 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王 哪跑!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值