新建工程后,几项准备:

1、工程中一个文件设为.mm后缀

2、在Xcode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC

3、 设置静态库的链接路径,在Xcode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的静态库目录,比如"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator

4、framework: CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework

5、自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):

NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述

NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述

首先要在appdelegate里面添加

BMKMapManager
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 要使用百度地图,请先启动BaiduMapManager
_mapManager = [[BMKMapManager alloc]init];
// 如果要关注网络及授权验证事件,请设定 generalDelegate参数
BOOL ret = [_mapManager start:@"在此处输入您的授权Key" generalDelegate:nil];
if (!ret) {
NSLog(@"manager start failed!");
}
// Add the navigation controller's view to the window and display.
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
return YES;
}

定位:

@interface ViewController ()<BMKMapViewDelegate,BMKCloudSearchDelegate,BMKLocationServiceDelegate>
{
BMKMapView* mapView;
BMKCloudSearch* search;
BMKLocationService* location;
}
 
- (void)viewDidLoad {
[super viewDidLoad];
CGRect rect = CGRectMake(0, 0, 320, 400);
mapView = [[BMKMapView alloc] initWithFrame:rect];
[self.view addSubview:mapView];
mapView.showsUserLocation= YES;
//搜索
search = [[BMKCloudSearch alloc] init];
search.delegate = self;
//服务
location = [[BMKLocationService alloc] init];
location.delegate = self;
[location startUserLocationService];
mapView.showsUserLocation = NO;
mapView.userTrackingMode = BMKUserTrackingModeFollowWithHeading;
mapView.showsUserLocation = YES;
//搜索按钮
UIButton* btSearch = [UIButton buttonWithType:UIButtonTypeCustom];
[btSearch setTitle:@"搜索" forState:UIControlStateNormal];
[btSearch addTarget:self action:@selector(clickSearch:) forControlEvents:UIControlEventTouchUpInside];
[btSearch setFrame:CGRectMake(0, 400, 320, 80)];
[btSearch setTintColor:[UIColor whiteColor]];
[btSearch setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.view addSubview:btSearch];
}
-(void)viewWillAppear:(BOOL)animated{
[mapView viewWillAppear];
mapView.delegate = self;
}
-(void)viewWillDisappear:(BOOL)animated{
[mapView viewWillDisappear];
mapView.delegate = nil;
}

mapview代理实现:

- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation
{
[mapView updateLocationData:userLocation];
}
//处理位置坐标更新
- (void)didUpdateUserLocation:(BMKUserLocation *)userLocation
{
[mapView updateLocationData:userLocation];
}

本地云检索:

 BMKCloudLocalSearchInfo *cloudLocalSearch = [[BMKCloudLocalSearchInfo alloc] init];
cloudLocalSearch.ak = @"pjzXs0beL65WCNiRvtLrOe5X";
cloudLocalSearch.geoTableId = 87197;
cloudLocalSearch.pageIndex = 0;
cloudLocalSearch.pageSize = 8;
//
cloudLocalSearch.region = @"成都市";
cloudLocalSearch.keyword = @"ex";
BOOL flag = [search localSearchWithSearchInfo:cloudLocalSearch];
if (flag) {
NSLog(@"本地云检索成功");
}
else{
NSLog(@"本地云检索失败");
}

检索回调:

- (void)onGetCloudPoiResult:(NSArray*)poiResultList searchType:(int)type errorCode:(int)error{
// 清楚屏幕中所有的annotation
NSArray* array = [NSArray arrayWithArray:mapView.annotations];
[mapView removeAnnotations:array];
if (error == BMKErrorOk) {
BMKCloudPOIList* result = [poiResultList objectAtIndex:0];
for (int i = 0; i < result.POIs.count; i++) {
BMKCloudPOIInfo* poi = [result.POIs objectAtIndex:i];
BMKPointAnnotation* item = [[BMKPointAnnotation alloc] init];
CLLocationCoordinate2D pt = (CLLocationCoordinate2D){ poi.longitude,poi.latitude};
item.coordinate = pt;
item.title = poi.title;
[mapView addAnnotation:item];
}
} else {
NSLog(@"error ==%d",error);
}
}

但到目前为止,使用xcode6.2beta,真机使用iphone5,始终在本地云检索的时候报错:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument'

。求高人指教啊

终于找到原因所在,原来我的服务端的ak设置的sn校验,虽然我不知道什么是sn校验,但是最后改成了ip白名单。然后在“我的服务”中打开了服务,终于,奇迹出现了。终于回调成功了。。。呵呵呵。。。

ios技术交流群:378501081。。期待你加入。。

  

iOS百度地图探索的更多相关文章

  1. iOS百度地图SDK集成详细步骤

    1.iOS百度地图下载地址 http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 根据需要选择不同的版本  ...

  2. IOS百度地图之--->第一篇《环境配置与基本使用》

    Ios 百度地图SDK简易使用说明:http://developer.baidu.com/map/index.php?title=iossdk 先道歉:对于原来上传的Demo我很抱歉,什么都没有,也没 ...

  3. iOS百度地图简单使用详解

    iOS百度地图简单使用详解 百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰 ...

  4. iOS百度地图简单使用

    本文介绍三种接口: 1.基础地图2.POI检索3.定位 首先是配置环境,有两种方法,方法在官方教程里都有,不再多说 1.使用CocoaPods自动配置[这个方法特别好,因为当你使用CocoaPods配 ...

  5. iOS 百度地图截屏

    关于百度地图截屏的问题,发现不能用常用的方法进行载屏,常用的截屏方法所得到的图片地图瓦片底图会显示空白,网上给出的答案是这样的 :因为百度地图不是用UIKit实现的,所以得不到截图! 不过通过Open ...

  6. ios 百度地图,火星坐标,地球坐标互转

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  7. iOS百度地图

    一.百度地图sdk具体使用过程,參考以下的博客(我感觉非常具体.并且有问题能够找楼主.他会给解答,感谢好心人-): 怎样使用百度地图sdk,及相关demo下载 上述博客给的demo,是真机执行的(百度 ...

  8. iOS 百度地图使用详解

    最近仿照美团做了款应用,刚好用到百度地图,高德地图之前用的比较多,只是这个项目的后台服务器是另外一个公司做的,他们用的就是百度地图,现在网上用百度地图的还不算太多,博文也是断断续续的,主要是中间跳跃有 ...

  9. IOS百度地图获取所在的城市名称

    笔者的app要实现定位所在省和城市名称,借此总结巩固一下! @interface VenueListVC : BasePageTableViewVC<BMKLocationServiceDele ...

随机推荐

  1. 20个超实用的JavaScript技巧及最佳实践

    1.第一次给变量赋值时,别忘记var关键字   给一个未声明的变量赋值,该变量会被自动创建为全局变量,在JS开发中,应该避免使用全局变量.   2.使用===替换==   并且永远不要使用=或!=. ...

  2. onNewIntent调用时机

    在IntentActivity中重写下列方法:onCreate onStart onRestart  onResume  onPause onStop onDestroy  onNewIntent 一 ...

  3. 黄聪:URL推广系统防作弊

    要实现的功能: 1.注册用户登录以后可以获取到个人私人唯一的一个推广链接,通过主动传播带来的注册用户全部计入该ID名下:2.其中与该ID相同cookies或者同IP的注册量全部作为作弊处理(也就是说不 ...

  4. communication ports in DOS systems:

    : CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7,COM8, COM9, LPT1, LPT2, LPT3, LPT4, L ...

  5. Codeforces Round #365 (Div. 2) Mishka and trip

    Mishka and trip 题意: 有n个城市,第i个城市与第i+1个城市相连,他们边的权值等于i的美丽度*i+1的美丽度,有k个首都城市,一个首都城市与每个城市都相连,求所有边的权值. 题解: ...

  6. DEV--GerdView控件

    1.遍历 ; i < gridView1.RowCount; i++) { ; j < gridView1.Columns.Count; j++) { object val = gridV ...

  7. 发现木马C:\windows\system32\FastUserSwitchingCompatibilityex.dll

    而且用安全狗还隔离不了

  8. 树莓派安装3.5inch RPi LCD (A)显示屏

    3.5inch RPi LCD (A) 资料 产品介绍 用户手册 开发资料 开发软件 树莓派镜像 演示视频 FAQ 在自定义Raspbian系统镜像上怎么使用树莓派LCD? 先确保自定义镜像可正常进入 ...

  9. strace命令

    简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...

  10. mongodb 数据导入导出

    mongoexport 命令异常方便简单强大! 连接数据库: jkmiao@jkmiao-ipin:~$ mongo 192.168.1.xx:xxx/jd_58tc_raw 1.  导出10条数据到 ...