您现在的位置是:首页 > 文章详情

iOS:UIMapView地图视图控件的简单使用

日期:2017-05-27点击:313

可以通过设置MKMapView的mapViewType设置地图类型

MKMapTypeStandard 普通地图
MKMapTypeSatellite 卫星云图 
MKMapTypeHybrid 普通地图覆盖于卫星云图之上
 

@property (nonatomic) MKMapType mapType;  //地图类型

@property (nonatomic) MKCoordinateRegion region;  //位置区域

@property (nonatomic) CLLocationCoordinate2D centerCoordinate;//位置经纬度

 

//位置区域范围(0~1)

typedef struct {

    CLLocationDegrees latitudeDelta;

    CLLocationDegrees longitudeDelta;

} MKCoordinateSpan;

 

//位置经纬度

typedef struct {

CLLocationDegrees latitude;

CLLocationDegrees longitude;

} CLLocationCoordinate2D;

 

//位置区域

typedef struct {

CLLocationCoordinate2D center;

MKCoordinateSpan span;

} MKCoordinateRegion;

 

 

//在地图上设置显示区域

- (void)setRegion:(MKCoordinateRegion)region animated:(BOOL)animated;

- (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;

 

 
MapView会将一些事件传递给它的代理(遵守MKMapViewDelegate协议),代理方法如下:
mapViewWillStartLoadingMap: 当地图界面将要加载时调用
mapView:viewForAnnotation: 当地图上有一些动画效果展示\加载时调用
mapViewWillStartLocatingUser:当准备进行一个位置定位时调用
mapView:regionDidChangeAnimated: 当显示的区域发生变化时调用
mapView:didUpdateUserLocation:当用户位置发生变化时调用
 
 
具体实例如下:
1、导入CoreLocation/Mapkit框架
2、拖入一个UIMapView控件到控制器中
3、在ViewController.m文件中导入必要的库文件
4、将MapView关联为IBOutLet属性,同时让ViewController类实现地图协议
5、代码实现功能
//显示地图
复制代码
- (void)viewDidLoad { [super viewDidLoad]; //设置地图的属性 self.mapView.mapType = MKMapTypeHybrid; //设置区域的经纬度坐标 CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(40, 116);//(经度、纬度) //设置经纬度范围(越小越精确) MKCoordinateSpan span = MKCoordinateSpanMake(0.1, 0.1); //设置地图显示的区域 self.mapView.region = MKCoordinateRegionMake(coordinate, span); //设置地图的代理 self.mapView.delegate = self; }
复制代码

//实现地图协议

#pragma mark -mapView的方法

复制代码
#pragma mark -地图开始加载 -(void)mapViewWillStartLoadingMap:(MKMapView *)mapView { NSLog(@"开始加载地图"); } #pragma mark -地图加载完毕 -(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView { NSLog(@"地图加载完毕"); } #pragma mark -地图区域将要改变 -(void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated { MKCoordinateRegion region = mapView.region; NSLog(@"经度:%f,纬度:%f",region.center.latitude,region.center.longitude); } #pragma mark -地图区域已经改变 -(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated { MKCoordinateRegion region = mapView.region; NSLog(@"经度:%f,纬度:%f",region.center.latitude,region.center.longitude); }
复制代码

演示结果截图:

加载调用了代理方法,输出为:

2015-10-19 21:50:19.241 05-mapkit-MapView[7278:360386] 开始加载地图 2015-10-19 21:50:19.261 05-mapkit-MapView[7278:360386] 地图加载完毕

地图显示:

 

 
程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类:  iOS高级

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4893237.html,如需转载请自行联系原作者
原文链接:https://yq.aliyun.com/articles/366111
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章