- 浏览: 265389 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jimode2013:
thanks
UIPanGestureRecognizer学习笔记 -
白色蜻蜓:
- (void) loadView { //opaquevie ...
UIWebView中使用UIActivityIndicatorView
百度地图API(1)
- 博客分类:
- ios征程
问题
2012-10-26 11:37:05.519 yuanshi[1307:c07] -[UIDevice uniqueGlobalDeviceIdentifier]: unrecognized selector sent to instance 0xaa6cdb0
2012-10-26 11:49:53.867 yuanshi[1307:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDevice uniqueGlobalDeviceIdentifier]: unrecognized selector sent to instance 0xaa6cdb0'
目前我们在做IOS开发中绝大多数用的是GoogleMap地图,IOS本身自带的也是googleMap,但是如果我们希望在地图上实时显示路况信息等部分功能,googlemap则没有,所以有时候我们可以应用百度地图做应用程序。下面我简单介绍一下BMapKit的应用:
一:首先我们有一点与用googlemap开发的不同,需要创建BMKMapManager管理应用程序的map,如果没有这个类,地图则不能够显示。
下面红色的字体是自己在百度官方申请的地图api——key;
BMKMapManager *_mapManager = [[BMKMapManager alloc] init];
BOOL ret = [_mapManager start:@"C3252C69EDB6D21A10B3FC9657FD1DDC7E0000**"generalDelegate:self];
if (!ret) {
NSLog(@"manager start failed!");
}
二:在view中添加BMKMapView,同时设置BMKMapViewDelegate,添加annotation(记录兴趣点,BMKAnnotation),同时每个兴趣点可以设置其title(设置annotation的标题),以及subtitle(子标题)。
@interface MapBaiDu : UIViewController <BMKMapViewDelegate> { }
@property (nonatomic, strong) BMKMapView *_mapView;
@end- (void)viewDidLoad {
_mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 39, 320, 377)]; //创建MKMapView
[self.view addSubview:_mapView];
[_mapView release];
_mapView.delegate = self; //设置代理
_mapView.showsUserLocation = YES; //设置为可以显示用户位置
CLLocationCoordinate2D coordinate; //设定经纬度
coordinate.latitude = 40.027283; //纬度
coordinate.longitude = 116.313217; //经度
BMKCoordinateRegion viewRegion = BMKCoordinateRegionMake(coordinate,BMKCoordinateSpanMake(1.0, 1.0));
BMKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion];
[_mapView setRegion:adjustedRegion animated:YES];
}上面最后一行 :设置当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围。region是BMKMapView的一个属性,类型BMKCoordinateRegion ,这行的意思是创建一个以coordinate为中心,上下左右个0.5个经(纬)度。但是这时我们需要注意一个问题就是,创建的区域是一个正方形,并不符合我们所需要的BMKMapView比例;之后用方法regionThatFits调整显示范围。
///表示一个经纬度区域
typedef struct {
CLLocationCoordinate2D center; ///< 中心点经纬度坐标
BMKCoordinateSpan span; ///< 经纬度范围
} BMKCoordinateRegion;
///表示一个经纬度范围
typedef struct {
CLLocationDegrees latitudeDelta; ///< 纬度范围
CLLocationDegrees longitudeDelta; ///< 经度范围
} BMKCoordinateSpan;
三:下面我们简单说一下delegate
1:地图区域改变时候调用函数:
- (void)mapView:(BMKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
2:annotation
*根据anntation生成对应的View
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation;
*当mapView新添加annotation views时,调用此接口
- (void)mapView:(BMKMapView *)mapView didAddAnnotationViews:(NSArray *)views;
*当选中一个annotation views时,调用此接口
- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view;
*当取消选中一个annotation views时,调用此接口
- (void)mapView:(BMKMapView *)mapView didDeselectAnnotationView:(BMKAnnotationView *)view;
而annotation分为两部分:BMKAnotation该类为标注点的protocol,提供了标注类的基本信息函数,title和subtitle分别是标题和子标题;同时可以设置标注的左边,在拖曳时候会被调用setCoordinate;BMKAnnotationView为标注点显示视图类,该类继承UIView,可以设置此view显示的图像,可以设置centerOffset(中心的位置,正的偏移使view超右下方移动,负的朝右上方移动,单位为像素),还可以设置calloutOffset改变淡出的气泡位置(正的偏移使view超右下方移动,负的朝左上方移动,单位是像素)。还可以设置其触摸事件,默认情况下为YES,可以选中,也可以是enabled = NO。其他的属性还有:selected,canShowCallout,leftCalloutAccessoryView,rightCalloutAccessoryView。等等
四:当地图view定位时调用函数:
*当取消选中一个annotation views时,调用此接口
- (void)mapView:(BMKMapView *)mapView didDeselectAnnotationView:(BMKAnnotationView *)view;
*在地图View将要启动定位时,会调用此函数
- (void)mapViewWillStartLocatingUser:(BMKMapView *)mapView;
*在地图View停止定位后,会调用此函数
- (void)mapViewDidStopLocatingUser:(BMKMapView *)mapView;
*定位失败后,会调用此函数
- (void)mapView:(BMKMapView *)mapView didFailToLocateUserWithError:(NSError *)error;
*用户位置更新后,会调用此函数
- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation;
五:当有overlay(阴影标示某一个区域)生成或者新添加的时候调用此接口
*根据overlay生成对应的View
- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id <BMKOverlay>)overlay;
*当mapView新添加overlay views时,调用此接口
- (void)mapView:(BMKMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews;
六:当点击annotation view弹出的泡泡时,调用此接口
*当点击annotation view弹出的泡泡时,调用此接口
- (void)mapView:(BMKMapView *)mapView annotationViewForBubble:(BMKAnnotationView *)view;
九:annotation view有许多不同的状态,在不同状态的时候我们都可以设置不同的操作,拖动annotation view时view的状态变化
- (void)mapView:(BMKMapView *)mapView annotationView:(BMKAnnotationView *)view didChangeDragState:(BMKAnnotationViewDragState)newState
fromOldState:(BMKAnnotationViewDragState)oldState;
enum {
BMKAnnotationViewDragStateNone = 0, ///< 静止状态.
BMKAnnotationViewDragStateStarting, ///< 开始拖动
BMKAnnotationViewDragStateDragging, ///< 拖动中
BMKAnnotationViewDragStateCanceling, ///< 取消拖动
BMKAnnotationViewDragStateEnding ///< 拖动结束
};
typedef NSUInteger BMKAnnotationViewDragState;
原文出处:http://duohuoteng.iteye.com/blog/1725320
发表评论
-
EXC_BAD_ACCESS
2013-06-21 17:59 875EXC_BAD_ACCESS 这个错误,可以这么说,90%的 ... -
NSAssert
2013-06-08 09:55 947You can use NSAssert() to deb ... -
UIWebView中的图片用本地document目录中的
2013-04-28 14:34 0-(void)webViewDidStartLoad:(UI ... -
如何点击链接直接跳转到app store指定应用下载页面
2013-03-21 14:42 2730跳转到应用下载页面: NSString *str = [ ... -
ios面试题收集一(附基本答案)
2013-03-20 11:40 1413此份面试题包含40个题目,是现在网上能搜索到的一个比较热的一 ... -
IOS5.1.1完美越狱XCODE测试出现10004003的问题
2013-03-15 11:23 1101我的APP已经上线了,但是公司有几个越狱后IOS5.1.1 ... -
MKLocalSearch用法
2013-03-08 15:21 6708原文出处:http://phpadvocate.com/bl ... -
NSString-NSDate类型转换和CustomBar的总结
2012-12-21 09:53 1293如何将一个字符串@"2012-12-21" ... -
ios判断本地文件是否存在
2012-12-17 17:36 1129NSString *path = [[NSBundle ... -
UIWebView响应单机事件
2012-12-14 11:40 1088在UIViewController中,加入协议UIGes ... -
APP适配iphone5 and ihpone4
2012-12-09 13:22 1975首先加入Default-568@2x.png得开机图片 CG ... -
iOS常用控件尺寸大集合
2012-11-28 16:36 1760元素控件 尺寸(pts) Window(含状态栏) 320 x ... -
UIPanGestureRecognizer学习笔记
2012-11-27 14:59 17593好久没来写笔记了,原因很简单,最近一直坐java网站,没顾上学 ... -
发送邮件---iphone开发
2012-09-27 14:00 13471、导入MessageUI.framework包 2、引入头 ... -
nsarray倒序排序
2012-09-24 16:28 2287NSSortDescriptor *descripto ... -
UITextField限制输入类型
2012-09-05 17:37 7292限制只能输入特定的字 ... -
怎么把椭圆的UISearchBar改成圆角矩形?
2012-08-29 13:03 4597for (UIView *subview in sel ... -
uitableview出现重叠的处理办法
2012-08-24 10:45 698for (UIView *subview in ... -
XIB那点问题
2012-08-09 10:49 9411、运行错误: this class is not key ... -
下拉加载(刷新)下一页效果
2012-07-19 09:26 33771、导入EGO框架,即附件中的EGO.ZIP中的两个类文件,以 ...
相关推荐
百度地图api使用方法1链接:http://blog.csdn.net/sf2gis2/article/details/47811815使用方法2链接(详情):
百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/...
将百度地图嵌入c# cs窗体中,cs...查了很多资料,参考网上众多朋友的代码及百度地图API demo,这个例子中的js代码不用key,方便很多,使用的是v1.4版,少了很多限制,使用.net4.5开发的,可以将c#代码转为低版本也行的。
将百度地图嵌入c# cs窗体中,... 查了很多资料,参考网上众多朋友的代码及百度地图API demo,这个例子中的js代码不用key,方便很多,使用的是v1.4版,少了很多限制,使用.net4.5开发的,可以将c#代码转为低版本也行的。
百度地图API是一套为开发者免费提供的基于百度地图的应用程序接口,包括JavaScript、iOS、Andriod、静态地图、Web服务等多种版本,提供基本地图、位置搜索、周边搜索、公交...
1,基础API:apiv1.3.min.js ,有注释可参考; 2,基础CSS: bmap.css ; 3,依赖文件:map,oppc,tile,control,marker; 4,瓦片图:maptile; 5,例子:demo.html;用火狐和chrome可直接打开,在IE下还有些问题。 多多...
百度地图的api文档
百度地图 API 自定义地图底层 WEB 版本 用于用户自定义地图的底层
python调用百度地图API实现经纬度换算、热力地图全流程指南
百度地图API实例百度地图API实例百度地图API实例百度地图API实例百度地图API实例百度地图API实例百度地图API实例
使用javascript 调用百度地图api 调用百度地图api 非常简单
百度地图api离线版,基于api2.0,带demo和示例数据,支持google地图转换,转换所需的GoogleToBaidu.jar也在本压缩包内
通过C++代码调用百度地图API,一个简单实用的百度地图操作实例,希望能给大家带来帮助。
代码借助selenium实现了百度地图的动态抓取,可以直接从百度地图获取数据,很好的解决了api端口的配额限制。
调用百度地图API显示虚线运动轨迹,自己写的一个例子,附带注释,适合初次接触百度地图API的
1.2.1 引用百度地图API文件 1.2.2创建地图容器元素 1.2.3命名空间 1.2.4创建地图实例 1.2.5创建点坐标 1.2.6 初始化地图 1.2.7地图操作 2应用示例 2.1 Map类 2.2 ExtJs 2.2.1 将百度地图嵌入到Ext中 ...
基于百度地图API的安徽省地震灾情调查系统设计研究.docx基于百度地图API的安徽省地震灾情调查系统设计研究.docx基于百度地图API的安徽省地震灾情调查系统设计研究.docx基于百度地图API的安徽省地震灾情调查系统设计...
html读取json数据百度地图api加载json数据加载marker图标
使用checkip获取IP,使用百度地图api用获取到的IP获取经纬度以及大致城市,最后使用百度地图api获取详细地址
使用百度地图API实现轨迹回放