iOS地图之MapKit框架
MapKit框架在地图中用于显示,工程实例:
1 #import "ViewController.h" 2 3 #import <MapKit/MapKit.h> 4 #import <CoreLocation/CoreLocation.h> 5 #import "myAnotation.h" 6 7 @interface ViewController ()<MKMapViewDelegate> 8 ///定位管理器 9 @property (nonatomic, strong) CLLocationManager *manager; 10 ///显示地图的视图 11 @property (nonatomic, strong) MKMapView *mapView; 12 13 @end 14 15 @implementation ViewController 16 17 - (void)viewDidLoad { 18 [super viewDidLoad]; 19 20 [self createMapView]; 21 22 } 23 24 #pragma mark - 创建地图视图 25 - (void)createMapView { 26 //创建地图视图,添加到当前视图 27 self.mapView = [[MKMapView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 28 [self.view addSubview:self.mapView]; 29 //设置代理 30 self.mapView.delegate = self; 31 //定位 32 self.manager = [[CLLocationManager alloc] init]; 33 //判断隐私并授权 34 if (![CLLocationManager locationServicesEnabled]) { 35 NSLog(@"当前设备的定位不可用"); 36 } 37 if ([CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedWhenInUse) { 38 //注意设置info.plist(参照上一篇博客CoreLocation框架) 39 [self.manager requestWhenInUseAuthorization]; 40 } 41 //设置地图的定位追踪,枚举值,根据实际需求选取枚举值 42 self.mapView.userTrackingMode = MKUserTrackingModeFollow; 43 //设置地图的类型 44 self.mapView.mapType = MKMapTypeStandard; 45 46 //添加大头针 47 [self addAnotation]; 48 49 } 50 #pragma mark - 添加大头针方法的响应 51 - (void)addAnotation { 52 //设置经纬度 53 CLLocationCoordinate2D location = CLLocationCoordinate2DMake(40, 116); 54 myAnotation *anotation = [[myAnotation alloc] init]; 55 anotation.coordinate = location; 56 anotation.title = @"北京"; 57 anotation.subtitle = @"朝阳区"; 58 anotation.image = [UIImage imageNamed:@"11.png"]; 59 60 [self.mapView addAnnotation:anotation]; 61 62 } 63 64 #pragma mark - 代理方法 65 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { 66 NSLog(@"====%@", userLocation); 67 } 68 #pragma mark - 实现自定义大头针的代理方法(显示大头针的时候才会调用的方法) 69 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { 70 //判断是否是自定义的大头针 71 if ([annotation isKindOfClass:[myAnotation class]]) { 72 static NSString *identifier = @"Annotation"; 73 MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:identifier]; 74 if (!annotationView) { 75 annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier]; 76 77 //允许用户交互 78 annotationView.canShowCallout = YES; 79 //设置偏移量 80 annotationView.calloutOffset = CGPointMake(0, 2); 81 //设置左视图 82 annotationView.leftCalloutAccessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"11.png"]]; 83 84 } 85 86 //修改大头针视图 87 annotationView.annotation = annotation; 88 annotationView.image = ((myAnotation *)annotation).image; 89 90 return annotationView; 91 92 }else { 93 return nil; 94 } 95 } 96 @end
大头针模型:
1 #import <Foundation/Foundation.h> 2 #import <MapKit/MapKit.h> 3 @interface myAnotation : NSObject<MKAnnotation> 4 //大头针模型;重写协议中的三个属性coordinate(标记位置)、title(标题)、subtitle(子标题)三个属性 5 ///坐标 6 @property (nonatomic) CLLocationCoordinate2D coordinate; 7 ///标题 8 @property (nonatomic, copy) NSString *title; 9 ///子标题 10 @property (nonatomic, copy) NSString *subtitle; 11 ///自定义大头针(换成图片) 12 @property (nonatomic, strong) UIImage *image; 13 14 @end
转载于:https://www.cnblogs.com/bdlfbj/p/5547120.html
iOS地图之MapKit框架相关推荐
- 地图相关 MapKit框架
介绍 1.概念 导入头文件 #import <MapKit/MapKit.h> MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件 :MKMapView,专 ...
- iOS开发实用技术之MapKit框架的使用
MapKit框架的使用 ---- 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之后增加了2种 设置方式 self.mapView.m ...
- iOS地图定位(Map)
1.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院 手机软件:微信摇一摇.QQ附近的人. ...
- iOS iOS 地图与定位开发系列教程
iPhone SDK提供了三个类来管理位置信息:CLLocation CLLocationManager 和 CLLHeading(不常用).除了使用GPS来获取当前的位置信息外,iPhone也可以基 ...
- MapKit框架的使用
MapKit框架的使用 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之后增加了2种 设置方式 self.mapView.mapTyp ...
- iOS开发库和框架大全
音频 AudioBus:下一代 App 到 App 的实时音频路由.官网 AudioKit:一个强大的音频合成,处理和分析的工具集.官网 EZAudio:一个基于 Core Audio 的 iOS/O ...
- IOS 地图相关知识点
天渊不微博 iOS 6.1正式版可能在下周发布 据idownloadblog网站报道,可靠消息人士称iOS 6.1的第五个测试版,也就是GM版将很快发布.消息称目前iOS 6.1 GM正在内部测试之中 ...
- iOS 地图定位 地图
地图 准备工作 导入MapKit框架(iOS5之后不在需要程序员自己导入) 导入主头文件**#import <MapKit/MapKit.h>** MapKit框架中所有的数据类型的前缀都 ...
- iOS开发之MapKit
MapKit框架的使用 导入框架 导入主头文件 #import <MapKit/MapKit.h> MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKit有一 ...
最新文章
- 关于wxpy,使用Python玩转微信的问题
- keepalived_nginx实现discuz负载均衡和高可用
- python正则表达式re.sub用法
- PE文件详解(教程1-7)
- 神经网络的损失函数讲解
- 01-HTML基础与进阶-day5-录像262
- html之关于空白和空白字符
- Win7如何关闭 打开文件-安全警告
- python设置横坐标间隔_如何在matplotlib中更改刻度之间的间距?
- Linux的常用基础命令
- fromPromise
- qq微信淘宝京东自动转链转发机器人MkStone京东淘宝转链助手
- latex自动生成中文目录_LaTeX技巧907:目录与格式定制
- 微软放弃数字图书馆计划
- PWM呼吸灯之三角波、锯齿波、正弦函数波
- 轻松带你上手最好用的操作Excel工具——EasyExcel
- 【Altium Designer21】DRC规则检查、错误、设置简析
- 南京邮政计算机技术岗位待遇,邮政营业员月薪是多少?工资待遇及前景怎么样...
- 深圳软件测试培训:DOM中元素节点、属性节点、文本节点的理解
- 【华为认证-每日十题】HCNP-RS-IENP(31-40)【问】
热门文章
- ResNeX论文概述
- 【java】窗口中监听器的应用
- 随机向量x的协方差阵_【科普】如何正确理解特征值与特征向量
- 入党对程序员有什么用_为什么程序员都喜欢用两个大屏显示器?网友:一个复制一个粘贴...
- virtualbox+vagrant快速创建虚拟机
- 详细解读Youtube推荐算法
- python如何设置双索引_python – 设置值多索引熊猫
- 函数c语言画箭头_什么时候不使用箭头函数
- python 删除断点_给 Python 开发者的四条忠告!强烈建议收藏
- 前端特效demo | 一起围观 10 种创意时钟