地圖集成當(dāng)然是按照百度API官方步驟來柿赊,看細(xì)節(jié)
-
獲取秘鑰控轿,注意:安全碼一定得是Bundle Identifier
集成SDK进栽,使用CocoaPods集成
注意濒翻,這是我遇到的坑内狗,導(dǎo)入BaiduMapAPI_Base不出來丁溅,自己添加完整,每一個(gè)包這個(gè)component
- import <BaiduMapAPI_Base/BMKMapComponent.h>
- 要添加Bundle display name
然后按官方文檔進(jìn)行
#import "AppDelegate.h"
#import <BaiduMapAPI_Base/BMKMapManager.h>
@interface AppDelegate ()
/** 地圖管理者 */
@property (nonatomic, strong) BMKMapManager *mapManager;
@end
@implementation AppDelegate
- (BMKMapManager *)mapManager {
if (_mapManager == nil) {
_mapManager = [[BMKMapManager alloc] init];
BOOL ret = [_mapManager start:@"qcNQtv1Uz5WTsr9i59up62q9BBDh6T2W" generalDelegate:nil];
if (!ret) {
NSLog(@"manager start failed!");
} else {
NSLog(@"成功");
}
}
return _mapManager;
}
- 成功
- 檢索功能
- 有個(gè)坑就是,下面代碼應(yīng)該放地圖視圖外唤蔗,點(diǎn)擊白色區(qū)域
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
//發(fā)起檢索
BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init];
option.pageIndex = 0;
option.pageCapacity = 10;
option.location = (CLLocationCoordinate2D){39.915, 116.404};
option.keyword = @"小吃";
BOOL flag = [self.search poiSearchNearBy:option];
if(flag)
{
NSLog(@"周邊檢索發(fā)送成功");
}
else
{
NSLog(@"周邊檢索發(fā)送失敗");
}
}
搜索結(jié)果
#pragma mark - BMKPoiSearchDelegate
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList errorCode:(BMKSearchErrorCode)error
{
if (error == BMK_SEARCH_NO_ERROR) {
//在此處理正常結(jié)果
[poiResultList.poiInfoList enumerateObjectsUsingBlock:^(BMKPoiInfo * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%@---%@", obj.name, obj.address);
}];
}
else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){
//當(dāng)在設(shè)置城市未找到結(jié)果,但在其他城市找到結(jié)果時(shí),回調(diào)建議檢索城市列表
// result.cityList;
NSLog(@"起始點(diǎn)有歧義");
} else {
NSLog(@"抱歉妓柜,未找到結(jié)果");
}
}
- 導(dǎo)航集成