百度地图集成步骤
2016-07-25 23:14
351 查看
集成步骤按照官方文档也可实现,我这里再写一遍。
第一步、导入
第二步、引入所需的系统库,下图中红色圈起来的为2.9.0版本后需要加入的
第三步、在other Linker Flag 添加
第四步、引入mapapi.bundle资源文件
如果使用了基础地图功能,需要添加该资源,否则地图不能正常显示mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。
方法:选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。
然后,就可以去写代码了。
同样,要首先去初始化BMKMapManager,并填上申请的key
然后在去
运行一下,如果能出现地图,这就成功咯。
如果打印
接下来要说下编码反编码。
地理编码指的是将地址信息建立空间坐标关系的过程。又可分为正向地理编码和反向地理编码。
正向地理编码指的是由地址信息转换为坐标点的过程。
反向地理编码服务实现了将地球表面的地址坐标转换为标准地址的过程。
首先要初始化检索对象
geo检索
接收正向编码的delegate
下面是反向地理编码检索
反geo检索delegate
到这,基本上就完成了,其他的一些小功能,可以参照着文档来实现,都挺简单的。有不对的地方还请指出来。
另外,附上我自己的Demo。
第一步、导入
.framework包,格式为
BaiduMapAPI_**.framework,其中
BaiduMapAPI_Base.framework为基础包
第二步、引入所需的系统库,下图中红色圈起来的为2.9.0版本后需要加入的
第三步、在other Linker Flag 添加
-ObjC
第四步、引入mapapi.bundle资源文件
如果使用了基础地图功能,需要添加该资源,否则地图不能正常显示mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。
方法:选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。
然后,就可以去写代码了。
同样,要首先去初始化BMKMapManager,并填上申请的key
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 启动 self.mapManager = [BMKMapManager new]; BOOL ret = [self.mapManager start:@"你的key" generalDelegate:nil]; if (!ret) { NSLog(@"失败"); } return YES; }
然后在去
- (void)viewDidLoad初始化地图
// 初始化地图 self.mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 100)]; [self.view addSubview:self.mapView];
- (void)viewWillAppear:(BOOL)animated { [_mapView viewWillAppear]; _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放 } - (void)viewWillDisappear:(BOOL)animated { [_mapView viewWillDisappear]; _mapView.delegate = nil; // 不用时,置nil }
运行一下,如果能出现地图,这就成功咯。
如果打印
manager start failed : info.plist 中必须添加 Bundle display name说明在Info.plist里面少Bundle display name,这个东西作用是设置程序安装后显示的名称。应⽤程序名称限制在10-12个字符,如果超出,将被显示缩写名称。添加上就行。
接下来要说下编码反编码。
地理编码指的是将地址信息建立空间坐标关系的过程。又可分为正向地理编码和反向地理编码。
正向地理编码指的是由地址信息转换为坐标点的过程。
反向地理编码服务实现了将地球表面的地址坐标转换为标准地址的过程。
首先要初始化检索对象
self.search = [[BMKGeoCodeSearch alloc] init]; self.search.delegate = self;
geo检索
BMKGeoCodeSearchOption *option = [[BMKGeoCodeSearchOption alloc]init]; option.address = @"石家庄海悦天地"; BOOL flag = [self.search geoCode:option]; if (flag) { NSLog(@"检索成功"); } else { NSLog(@"检索失败"); }
接收正向编码的delegate
//实现Deleage处理回调结果 //接收正向编码结果 - (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error{ if (error == BMK_SEARCH_NO_ERROR) { //在此处理正常结果 添加显示大头针 BMKPointAnnotation *annotation = [[BMKPointAnnotation alloc]init]; CLLocationCoordinate2D coor; coor.latitude = self.userLat; coor.longitude = self.userLong; annotation.coordinate = coor; annotation.title = @"这里是石家庄"; [_mapView addAnnotation:annotation]; } else { NSLog(@"抱歉,未找到结果"); } }
下面是反向地理编码检索
// 用户经度
self.userLong = [self.longTF.text doubleValue];
// 用户纬度
self.userLat = [self.latTF.text doubleValue];
self.search = [[BMKGeoCodeSearch alloc] init]; self.search.delegate = self;
//发起反向地理编码检索
CLLocationCoordinate2D pt = (CLLocationCoordinate2D){self.userLong, self.userLat};
BMKReverseGeoCodeOption *reverseGeoCodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];
reverseGeoCodeSearchOption.reverseGeoPoint = pt;
BOOL flag = [_search reverseGeoCode:reverseGeoCodeSearchOption];
if(flag)
{
NSLog(@"反geo检索发送成功");
// 添加一个大头针显示
BMKPointAnnotation *annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = self.userLat;
coor.longitude = self.userLong;
annotation.coordinate = coor;
annotation.title = @"这里是北京";
[_mapView addAnnotation:annotation];
}
else
{
NSLog(@"反geo检索发送失败");
}
反geo检索delegate
//接收反向地理编码结果 -(void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)resulterrorCode:(BMKSearchErrorCode)error{ if (error == BMK_SEARCH_NO_ERROR) { // 在此处理正常结果 } else { NSLog(@"抱歉,未找到结果"); } }
到这,基本上就完成了,其他的一些小功能,可以参照着文档来实现,都挺简单的。有不对的地方还请指出来。
另外,附上我自己的Demo。
相关文章推荐
- php检索或者复制远程文件的方法
- C#开发Android百度地图手机应用程序(多地图展示)
- 百度地图给map添加右键菜单(判断是否为marker)
- 基于OL2实现百度地图ABCD marker的效果
- JS中引用百度地图并将百度地图的logo和信息去掉
- js调用百度地图及调用百度地图的搜索功能
- 基于Arcgis for javascript实现百度地图ABCD marker的效果
- 百度地图API提示230 错误app scode码校验失败的解决办法
- 微信企业号开发之微信考勤百度地图定位
- 百度地图自定义控件分享
- 基于JavaScript实现类似于百度学术高级检索功能
- Android百度地图应用开发基础知识
- Android百度地图应用之图层展示
- 基于Android实现百度地图定位过程详解
- Android百度地图应用之创建显示地图
- Android SDK 百度地图通过poi城市内检索简介接口的使用
- Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡
- 如何调用百度地图API实现手机自动定位
- Android百度定位导航之基于百度地图移动获取位置和自动定位
- 百度地图经纬度,转换为地图上的点