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;

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] 地图加载完毕

地图显示:

时间: 2024-08-08 12:35:57

iOS:UIMapView地图视图控件的简单使用的相关文章

iOS学习笔记—— UItableView 控件的简单使用

UITableView 可以说是iOS开发中最常用的控件,除了游戏之外,几乎所有的应用中独会出现他的身影. 使用UITableView控件需要遵守两种协议 UITableViewDelegate和 UITableViewDataSource. 常用方法如下: 1.返回(每个分区)表单元个数(行数) - (NSInteger) tableView: (UItableView *) tableVIew numberOfRowsInSection: (NSInteger)section 2.返回表单元

iOS:UITableView表格视图控件

UITableView:表格视图控件,继承滚动视图控件UIScrollView,(类似于UIPickerView选择器,它主要通过设置数据源代理和行为代理实现协议来设置单元格) 对表格的操作主要有:创建表格.设置单元格(行数.内容.行高).编辑单元格(删除单元格.插入单元格).移动单元格.标记单元格.修改单元格等. 一.表格式图的属性和行为: 1.基本属性: @interface UITableView : UIScrollView <NSCoding> @property (nonatomi

iOS:UIImageView图像视图控件

UIImageView:图像视图控件: 它是UIView的子类,因此也是视图控件,可以用来显示图像.因为它具有帧动画属性和操作方法,因此可以用来制作动画,其实动画就是很短的时间内,执行显示连续的很多张图片,人肉眼无法处分,使人看起来仿佛图像在动似的.例如典型的实例:汤姆猫实例 @interface UIImageView : UIView { @property(nonatomic,retain) UIImage *image;    //图像 @property(nonatomic,retai

iOS:网页视图控件UIWebView的详解

网页视图控件:UIWebView 功能:它是继承于UIView的,以网页的形式用来显示从网络或者本地上加载下来的数据. 枚举: //网页视图导航类型 typedef NS_ENUM(NSInteger, UIWebViewNavigationType) { UIWebViewNavigationTypeLinkClicked,             //用户点击了一个链接 UIWebViewNavigationTypeFormSubmitted,        //用户提交了一个表单 UIWe

iOS:文本视图控件UITextView的详细使用

文本视图控件:UITextView 介绍:它是一个文本域的编辑视图,可以在该区域上进行编辑(包括删除.剪贴.复制.修改等),它与文本框UITextField的不同之处是:当它里面的每一行内容超出时,可以自动换行,而且带有滚动条,可以滚动查看其他无法显示的内容. 属性: @property(nonatomic,assign) id<UITextViewDelegate> delegate;      //代理 @property(nonatomic,copy) NSString *text;  

开源一款iOS中国地图行政区控件(含一级与二级行政区)

开源一款iOS版中国省市级地图行政区的控件,该组件可以支持拖动.缩放以及全国省和市级行政区的点选,主要适用于iPad,如果要在iPhone上使用,一些细节可能得做相关调整. 该地图组件实现起来不难,数据网上也有现成的(http://download.csdn.net/download/awen1983/7167979),实现原理就是从json中读取到每个行政区的边界经纬度之后,将其作为path添加到view中,每次拖动和点选时即进行重画. 项目代码:https://github.com/gugu

iOS学习笔记—— UIPickerView 控件的简单使用

UIPickerView 是iOS常用的控件之一,它通过轮转界面提供一系列多值选项,它向用户展示信息,也能收集用户输入.下面是一个普通的UIPickerView控件. 使用UIPickerView控件需要遵守两种协议,一种是UIPickerViewDelegate,另一种是UIPickerViewDataSource. UIPickerViewDelegate协议的方法有: 1.  -(NSString *) pickerView: (UIPickerView * )pickerView tit

iOS:风火轮活动刷新视图控件UIActivityIndicatorView的详细使用

动态风火轮视图控件:UIActivityIndicatorView 介绍:它是一种类似于风火轮旋转的视图控件,可用作刷新数据时显示加载过程所用,继承自UIView. 类型: typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) { UIActivityIndicatorViewStyleWhiteLarge,  //大的白色类型 UIActivityIndicatorViewStyleWhite,         //白色类型 UIAc

?关于ios中的点赞控件效果的实现--UIControl

关于ios中的点赞控件效果的实现--UIControl 在开发当中,可能很多时候都需要做个点赞的需求,如果用按钮实现,按钮作为一个系统复合控件,外部是一个 View-->UIControl的容器, 内部包含了UILabel和UIImage,以及一些排版规则.用UIButton就很难去做一些在"赞"和"取消赞"切换时的效果. 可是我们又很需要UIButton似的事件响应机制. 怎么办? 对! 就是使用UIControl. UIControl在这里有两个突出的优势