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框架相关推荐

  1. 地图相关 MapKit框架

    介绍 1.概念 导入头文件 #import <MapKit/MapKit.h> MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件 :MKMapView,专 ...

  2. iOS开发实用技术之MapKit框架的使用

    MapKit框架的使用 ---- 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之后增加了2种 设置方式 self.mapView.m ...

  3. iOS地图定位(Map)

    1.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如     导航:去任意陌生的地方     周边:找餐馆.找酒店.找银行.找电影院     手机软件:微信摇一摇.QQ附近的人. ...

  4. iOS iOS 地图与定位开发系列教程

    iPhone SDK提供了三个类来管理位置信息:CLLocation CLLocationManager 和 CLLHeading(不常用).除了使用GPS来获取当前的位置信息外,iPhone也可以基 ...

  5. MapKit框架的使用

    MapKit框架的使用 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之后增加了2种 设置方式 self.mapView.mapTyp ...

  6. iOS开发库和框架大全

    音频 AudioBus:下一代 App 到 App 的实时音频路由.官网 AudioKit:一个强大的音频合成,处理和分析的工具集.官网 EZAudio:一个基于 Core Audio 的 iOS/O ...

  7. IOS 地图相关知识点

    天渊不微博 iOS 6.1正式版可能在下周发布 据idownloadblog网站报道,可靠消息人士称iOS 6.1的第五个测试版,也就是GM版将很快发布.消息称目前iOS 6.1 GM正在内部测试之中 ...

  8. iOS 地图定位 地图

    地图 准备工作 导入MapKit框架(iOS5之后不在需要程序员自己导入) 导入主头文件**#import <MapKit/MapKit.h>** MapKit框架中所有的数据类型的前缀都 ...

  9. iOS开发之MapKit

    MapKit框架的使用 导入框架 导入主头文件 #import <MapKit/MapKit.h> MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKit有一 ...

最新文章

  1. 关于wxpy,使用Python玩转微信的问题
  2. keepalived_nginx实现discuz负载均衡和高可用
  3. python正则表达式re.sub用法
  4. PE文件详解(教程1-7)
  5. 神经网络的损失函数讲解
  6. 01-HTML基础与进阶-day5-录像262
  7. html之关于空白和空白字符
  8. Win7如何关闭 打开文件-安全警告
  9. python设置横坐标间隔_如何在matplotlib中更改刻度之间的间距?
  10. Linux的常用基础命令
  11. fromPromise
  12. qq微信淘宝京东自动转链转发机器人MkStone京东淘宝转链助手
  13. latex自动生成中文目录_LaTeX技巧907:目录与格式定制
  14. 微软放弃数字图书馆计划
  15. PWM呼吸灯之三角波、锯齿波、正弦函数波
  16. 轻松带你上手最好用的操作Excel工具——EasyExcel
  17. 【Altium Designer21】DRC规则检查、错误、设置简析
  18. 南京邮政计算机技术岗位待遇,邮政营业员月薪是多少?工资待遇及前景怎么样...
  19. 深圳软件测试培训:DOM中元素节点、属性节点、文本节点的理解
  20. 【华为认证-每日十题】HCNP-RS-IENP(31-40)【问】

热门文章

  1. ResNeX论文概述
  2. 【java】窗口中监听器的应用
  3. 随机向量x的协方差阵_【科普】如何正确理解特征值与特征向量
  4. 入党对程序员有什么用_为什么程序员都喜欢用两个大屏显示器?网友:一个复制一个粘贴...
  5. virtualbox+vagrant快速创建虚拟机
  6. 详细解读Youtube推荐算法
  7. python如何设置双索引_python – 设置值多索引熊猫
  8. 函数c语言画箭头_什么时候不使用箭头函数
  9. python 删除断点_给 Python 开发者的四条忠告!强烈建议收藏
  10. 前端特效demo | 一起围观 10 种创意时钟