ios开发中百度地图的基本使用一
2014-11-21 09:16
232 查看
最近的项目要求用百度地图,所以自己研究了一下,现在我把自己研究出来的成果给大家分享一下,如果大家有更好的方案可以互相交流哈。好了闲话少说,现在我就给大家介绍一下百度地图的使用。
1.首先要下载百度地图的SDK,打开连接就可以下载了。点击打开链接
2.下载后会有以下几个文件,图中选中的文件是工程中需要的,你只需要按照我的步骤将文件拷贝到工程即可
2.1将inc拷贝到你的工程(这里包含了baidumap的API文件)
2.2.引入mapapi.bundle资源文件
该步骤为可选,mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片。如果您不需要使用内置的图片显示功能,则可以不添加此bundle文件。您也可以根据具体需求任意替换或删除该bundle中的图片文件。 添加方式:将mapapi.bundle拷贝到您的工程目录,直接将该bundle文件托拽至XCode工程左侧的Groups&Files中即可。
2.3.将静态库引入工程
百度地图API提供了模拟器和真机两中环境所使用的静态库文件,分别存放在libs/Release-iphonesimulator和libs/Release-iphoneos文件夹下(即图中的两个文件下)。点击链接,查看静态文件加入工程方法,大家可以参照链接中得提示去设置,我个人认为这个链接里面写的较为详细,我也是按照这里面设置的。
2.4引入系统framework
百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。 添加方式:右键点击Xcode工程左侧的Frameworks文件夹,add->Existing
Frameworks,在弹出窗口中选中这几个framework,点击add即可。
3.申请百度地图的key
在工程中使用百度地图,还需要申请百度地图的key,注意你必须要有百度账号,如果没有可以注册一个。点击链接,注册百度密匙(key),申请成功后他会自动生成一个key。类似ArFPsfgf9BuCtzs4sYTYrhK8
好了以上就是xcode使用baidumap的完整配置,配置成功后你就可以开始上代码了。
代码编写部分
1.在AppDelegate中
1.1在AppDelegate.h中写如下代码
1.2在AppDelegate.m中写如下代码,箭头所指的地方就是你申请的key,如果没有key地图不会显示
2.在你要显示地图的类中添加如下代码
2.1基本地图的显示
首先导入BMKMapView.h、BMapKit.h,之后在按照下面写代码,只需要下边这几行代码就可以显示地图了,地图的类型可选,地图的使用等级最高为18(MapView.zoomLevel
= 18);
2.2地图定位
平时我们使用的地图都是打开之后就会自动定位到用户当前的位置,那么我现在带大家来实现这个功能。
2.2.1首先我们要遵守BMKLocationServiceDelegate这个代理,代码如下
2.2.2实现代理方法
写完如上代码运行后地图就会显示你的当前位置,上边的这两个代理方法是一直循环着走的,只要用户的经纬度发生变化这个代理方法就会一直不间歇的走,所以当你不想让他一直走就可以将delegate置为nil。
2.3附近的兴趣点搜索
2.3.1首先遵守BMKMapViewDelegate、BMKPoiSearchDelegate两个代理,代码如下
- (IBAction)nearSearch:(id)sender {
//周边检索
NSArray* array = [NSArrayarrayWithArray:MapView.annotations];
[MapViewremoveAnnotations:array];
searcher = [[BMKPoiSearchalloc]init];
searcher.delegate =self;
//发起检索
BMKNearbySearchOption *option = [[BMKNearbySearchOptionalloc]init];
option.pageIndex =0; //一般默认设置为0
option.pageCapacity =30; //默认10,最多50
option.location =CLLocationCoordinate2D{userLoc.location.coordinate.latitude,userLoc.location.coordinate.longitude};//检索中心点的经纬度
option.keyword =_nearSearchTF.text;//检索关键字(入美食、商场等)
BOOL flag = [searcherpoiSearchNearBy:option];
if (flag) {
NSLog(@"周边检索发送成功");
}else{
NSLog(@"周边检索所发送失败");
}
}
2.3.2检索成功之后还要实现BMKPoiSearchDelegate的方法
#pragma mark -- poi检索 --
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList
errorCode:(BMKSearchErrorCode)error
{
if (error ==BMK_SEARCH_NO_ERROR) {
NSArray *arr = poiResultList.poiInfoList;
//此处是对搜索的结果进行处理(我这里使用大头针将所有搜索结果显示出来)
for (BMKPoiInfo *poiInfoin arr) {
//BMKPoiInfo是POI信息类
NSLog(@"%@ %f %f",poiInfo.name,poiInfo.pt.latitude,poiInfo.pt.longitude);
BMKPointAnnotation* annotation = [[BMKPointAnnotationalloc]init];
annotation.coordinate = poiInfo.pt;
annotation.title = poiInfo.name;
[MapViewaddAnnotation:annotation];
[MapView setCenterCoordinate:poiInfo.ptanimated:YES];//设置地图中心位置
}
}
elseif (error ==BMK_SEARCH_AMBIGUOUS_KEYWORD){
}else{
NSLog(@"抱歉,未找到结果");
}
}
#pragma mark --
添加大头针,这里实现的是BMKMapViewDelegate --
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id
<BMKAnnotation>)annotation
{
if ([annotationisKindOfClass:[BMKPointAnnotation class]])
{
BMKPinAnnotationView *newAnnotationView = [[BMKPinAnnotationViewalloc]initWithAnnotation:annotationreuseIdentifier:@"myAnnotation"];
newAnnotationView.pinColor =BMKPinAnnotationColorPurple;//设置大头针的颜色
newAnnotationView.animatesDrop =YES;//设置该标注点动画显示
return newAnnotationView;
}
returnnil;
}
好了如果你按照我上面的代码写下来,运行时就会有如下效果(我搜索的是附近的美食)
好了各位先写到这里,至于路径搜索我会在下篇中给大家介绍,希望对大家有帮助。
1.首先要下载百度地图的SDK,打开连接就可以下载了。点击打开链接
2.下载后会有以下几个文件,图中选中的文件是工程中需要的,你只需要按照我的步骤将文件拷贝到工程即可
2.1将inc拷贝到你的工程(这里包含了baidumap的API文件)
2.2.引入mapapi.bundle资源文件
该步骤为可选,mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片。如果您不需要使用内置的图片显示功能,则可以不添加此bundle文件。您也可以根据具体需求任意替换或删除该bundle中的图片文件。 添加方式:将mapapi.bundle拷贝到您的工程目录,直接将该bundle文件托拽至XCode工程左侧的Groups&Files中即可。
2.3.将静态库引入工程
百度地图API提供了模拟器和真机两中环境所使用的静态库文件,分别存放在libs/Release-iphonesimulator和libs/Release-iphoneos文件夹下(即图中的两个文件下)。点击链接,查看静态文件加入工程方法,大家可以参照链接中得提示去设置,我个人认为这个链接里面写的较为详细,我也是按照这里面设置的。
2.4引入系统framework
百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。 添加方式:右键点击Xcode工程左侧的Frameworks文件夹,add->Existing
Frameworks,在弹出窗口中选中这几个framework,点击add即可。
3.申请百度地图的key
在工程中使用百度地图,还需要申请百度地图的key,注意你必须要有百度账号,如果没有可以注册一个。点击链接,注册百度密匙(key),申请成功后他会自动生成一个key。类似ArFPsfgf9BuCtzs4sYTYrhK8
好了以上就是xcode使用baidumap的完整配置,配置成功后你就可以开始上代码了。
代码编写部分
1.在AppDelegate中
1.1在AppDelegate.h中写如下代码
1.2在AppDelegate.m中写如下代码,箭头所指的地方就是你申请的key,如果没有key地图不会显示
2.在你要显示地图的类中添加如下代码
2.1基本地图的显示
首先导入BMKMapView.h、BMapKit.h,之后在按照下面写代码,只需要下边这几行代码就可以显示地图了,地图的类型可选,地图的使用等级最高为18(MapView.zoomLevel
= 18);
2.2地图定位
平时我们使用的地图都是打开之后就会自动定位到用户当前的位置,那么我现在带大家来实现这个功能。
2.2.1首先我们要遵守BMKLocationServiceDelegate这个代理,代码如下
2.2.2实现代理方法
写完如上代码运行后地图就会显示你的当前位置,上边的这两个代理方法是一直循环着走的,只要用户的经纬度发生变化这个代理方法就会一直不间歇的走,所以当你不想让他一直走就可以将delegate置为nil。
2.3附近的兴趣点搜索
2.3.1首先遵守BMKMapViewDelegate、BMKPoiSearchDelegate两个代理,代码如下
- (IBAction)nearSearch:(id)sender {
//周边检索
NSArray* array = [NSArrayarrayWithArray:MapView.annotations];
[MapViewremoveAnnotations:array];
searcher = [[BMKPoiSearchalloc]init];
searcher.delegate =self;
//发起检索
BMKNearbySearchOption *option = [[BMKNearbySearchOptionalloc]init];
option.pageIndex =0; //一般默认设置为0
option.pageCapacity =30; //默认10,最多50
option.location =CLLocationCoordinate2D{userLoc.location.coordinate.latitude,userLoc.location.coordinate.longitude};//检索中心点的经纬度
option.keyword =_nearSearchTF.text;//检索关键字(入美食、商场等)
BOOL flag = [searcherpoiSearchNearBy:option];
if (flag) {
NSLog(@"周边检索发送成功");
}else{
NSLog(@"周边检索所发送失败");
}
}
2.3.2检索成功之后还要实现BMKPoiSearchDelegate的方法
#pragma mark -- poi检索 --
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList
errorCode:(BMKSearchErrorCode)error
{
if (error ==BMK_SEARCH_NO_ERROR) {
NSArray *arr = poiResultList.poiInfoList;
//此处是对搜索的结果进行处理(我这里使用大头针将所有搜索结果显示出来)
for (BMKPoiInfo *poiInfoin arr) {
//BMKPoiInfo是POI信息类
NSLog(@"%@ %f %f",poiInfo.name,poiInfo.pt.latitude,poiInfo.pt.longitude);
BMKPointAnnotation* annotation = [[BMKPointAnnotationalloc]init];
annotation.coordinate = poiInfo.pt;
annotation.title = poiInfo.name;
[MapViewaddAnnotation:annotation];
[MapView setCenterCoordinate:poiInfo.ptanimated:YES];//设置地图中心位置
}
}
elseif (error ==BMK_SEARCH_AMBIGUOUS_KEYWORD){
}else{
NSLog(@"抱歉,未找到结果");
}
}
#pragma mark --
添加大头针,这里实现的是BMKMapViewDelegate --
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id
<BMKAnnotation>)annotation
{
if ([annotationisKindOfClass:[BMKPointAnnotation class]])
{
BMKPinAnnotationView *newAnnotationView = [[BMKPinAnnotationViewalloc]initWithAnnotation:annotationreuseIdentifier:@"myAnnotation"];
newAnnotationView.pinColor =BMKPinAnnotationColorPurple;//设置大头针的颜色
newAnnotationView.animatesDrop =YES;//设置该标注点动画显示
return newAnnotationView;
}
returnnil;
}
好了如果你按照我上面的代码写下来,运行时就会有如下效果(我搜索的是附近的美食)
好了各位先写到这里,至于路径搜索我会在下篇中给大家介绍,希望对大家有帮助。
相关文章推荐
- ios开发中百度地图的基本使用二
- iOS开发-百度地图基本定位和罗盘跟随的使用,附加地理编码和反地理编码
- IOS 百度地图开发 大头针标数字 大头针(标注)以及折线的基本使用
- IOS开发:基本设计模式(下)-使用设计模式解决问题
- iOS定位服务与地图开发(7)---使用本地化的百度地图
- 学习IOS开发项目篇--SDWebImage基本使用
- IOS开发UI篇—导航控制器属性和基本使用
- iOS 7 开发如何使用百度地图
- ios开发——基本控件与变量(数据)的关联与使用
- IOS开发之1-----copy语法的基本数据类型的使用01
- iOS开发网络篇—NSURLConnection基本使用
- iOS 百度地图开发集成使用
- iOS开发OC基础:OC字典NSDictionary以及NSMutableDictionary基本方法的使用
- ios百度地图的使用(基本定位和地理编码)
- IOS开发之UIView的基本使用
- iOS开发中block的声明、创建、传参的基本使用
- iOS开发UI篇—UITableview控件基本使用
- IOS开发UI篇—导航控制器属性和基本使用
- iOS开发UI篇—UITableview控件基本使用
- iOS开发 — Quartz 2D基本使用