地图集成当然是按照百度API官方步骤来,看细节
-
获取秘钥,注意:安全码一定得是Bundle Identifier
秘钥获取.png -
集成SDK,使用CocoaPods集成
注意,这是我遇到的坑,导入BaiduMapAPI_Base不出来,自己添加完整,每一个包这个component
- import <BaiduMapAPI_Base/BMKMapComponent.h>
- 要添加Bundle display name
然后按官方文档进行
#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;
}
- 成功
- 检索功能
- 有个坑就是,下面代码应该放地图视图外,点击白色区域
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
//发起检索
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(@"周边检索发送成功");
}
else
{
NSLog(@"周边检索发送失败");
}
}
搜索结果
#pragma mark - BMKPoiSearchDelegate
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList errorCode:(BMKSearchErrorCode)error
{
if (error == BMK_SEARCH_NO_ERROR) {
//在此处理正常结果
[poiResultList.poiInfoList enumerateObjectsUsingBlock:^(BMKPoiInfo * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%@---%@", obj.name, obj.address);
}];
}
else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){
//当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表
// result.cityList;
NSLog(@"起始点有歧义");
} else {
NSLog(@"抱歉,未找到结果");
}
}
- 导航集成
网友评论