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中的属性便是解析返回的结果