博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:UIMapView地图视图控件的简单使用
阅读量:6283 次
发布时间:2019-06-22

本文共 2461 字,大约阅读时间需要 8 分钟。

可以通过设置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] 地图加载完毕

地图显示:

 

 

转载地址:http://ccxva.baihongyu.com/

你可能感兴趣的文章
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>