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

简介:

可以通过设置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,如需转载请自行联系原作者
相关文章
|
iOS开发
iOS开发UI篇 - Quartz 2D简单使用
iOS开发UI篇 - Quartz 2D简单使用
iOS开发UI篇 - Quartz 2D简单使用
|
开发者 iOS开发
iOS第三方星级视图控件——HCSStarRatingView
iOS第三方星级视图控件——HCSStarRatingView
140 0
|
iOS开发
iOS网络编程之三——NSURLConnection的简单使用
iOS网络编程之三——NSURLConnection的简单使用
147 0
iOS网络编程之三——NSURLConnection的简单使用
|
缓存 iOS开发
iOS网络编程之二——NSURLSession的简单使用
iOS网络编程之二——NSURLSession的简单使用
273 0
|
iOS开发
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView(二)
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView
332 0
|
iOS开发
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView(一)
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView
227 0
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView(一)
|
iOS开发
iOS选择器视图控件(UIPickerView)使用方法总结
iOS选择器视图控件(UIPickerView)使用方法总结
453 0
|
定位技术 iOS开发
iOS原生地图开发进阶——使用导航和附近兴趣点检索(二)
iOS原生地图开发进阶——使用导航和附近兴趣点检索
378 0
iOS原生地图开发进阶——使用导航和附近兴趣点检索(二)
|
定位技术 iOS开发
iOS原生地图开发进阶——使用导航和附近兴趣点检索(一)
iOS原生地图开发进阶——使用导航和附近兴趣点检索
292 0
|
定位技术 iOS开发
iOS原生地图开发指南再续——地图覆盖物的应用
iOS原生地图开发指南再续——地图覆盖物的应用
245 0
iOS原生地图开发指南再续——地图覆盖物的应用