iOS7应用开发14、MapKit框架

简介: MapKit Framework的基本概念: MapKit Framework提供了可以将地图直接嵌入到窗口和视图中的功能,同时还提供了地图标注、添加弹窗显示、进行反地理信息编码以通过地标信息查找经纬度坐标等功能。

MapKit Framework的基本概念:

MapKit Framework提供了可以将地图直接嵌入到窗口和视图中的功能,同时还提供了地图标注、添加弹窗显示、进行反地理信息编码以通过地标信息查找经纬度坐标等功能。

MKMapView类显示了一个地图视图,其中有一个位置指示器(annotation)提示了当前的位置坐标以及说明。可以利用该类实例显示地图信息并根据应用提供的数据改变地图的内容,如将地图的某个坐标点置于视图中心点、指定地图显示的大小区域和根据自定义信息创建标记点等。

MKMapView的使用方法:

1、使用alloc/init方法创建实例;在初始化时,需要定义地图初始显示的区域,该区域通过该类的region属性设置:

@property(nonatomic) MKCoordinateRegion region
除此之外还可以设置scrollEnabled和zoomEnabled来设置是否支持地图的滑动和缩放操作。

在实际使用中,不应派生MKMapView的子类,最好通过设置代理对象获取MKMapView实例的信息。MKMapView实例通过调用代理对象的方法知会map状态的变化和定位自定义标记点信息。代理对象可以是应用中的任何一个对象(只要符合<MKMapViewDelegate>协议)。

2、存在一个NSArray类型的属性annotation,保存MKAnnotation对象,其中的对象必须符合<MKAnnotation>协议;此属性为只读;

在实际应用过程中,MKAnnotation通常由app的data model中存在的类实现;每一个MKAnnotation对象包含定位点的位置以及可以在地图上显示的附加信息组成。

对于每一个MKAnnotation对象的显示过程,由MKAnnotationView完成。

MKAnnotationView:该类专门用于在map视图中显示定位点信息;当定位点MKAnnotation对象的坐标处于当前可见区域时,map视图请求代理对象提供相应的定位点信息以显示视图MKAnnotationView,最简单的方法是设置其image属性:

@property (nonatomic, retain) UIImage *image

同TableView类似,MKAnnotationView对象也可以保存于一个队列中以便循环使用。

创建/联系MKAnnotationView和MKAnnotation对象:通过以下代理方法:

- (MKAnnotationView *)mapView:(MKMapView *)sender viewForAnnotation:(id<MKAnnotation>)annotation;
选中某一个MKAnnotationView时的响应:
- (void)mapView:(MKMapView *)sender didSelectAnnotationView:(MKAnnotationVIew *)aView;

3、实现MKAnnotation协议的方法;

该协议用于向map视图提供与定位点annotation相关的信息。在保存定位点相关信息的类中声明符合该协议后,该协议中个的方法就可以作为data source向某个定位点实例提供相关信息,如定位点的位置等。

每个符合该协议的类的实例必须定义coordinate属性,而该协议其他的方法均为可选方法。

该协议中定义的属性有:coordinate、title、subtitle等;

该协议中定义的方法有:

- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;//该方法将定位点的center点为newCoordinate;

目录
相关文章
|
2月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
2月前
|
开发者 iOS开发
iOS应用上架详细图文教程(上)
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
|
2月前
|
Swift iOS开发 开发者
iOS 应用上架流程详解
iOS 应用上架流程详解
|
2月前
|
Android开发 iOS开发 UED
appuploader   iOS 应用自动发布
appuploader   iOS 应用自动发布
|
3月前
|
存储 监控 iOS开发
iOS应用崩溃了,如何通过崩溃手机连接电脑查找日志方法
在iOS应用开发过程中,调试日志和奔溃日志是开发者必不可少的工具。当iOS手机崩溃时,我们可以连接电脑并使用Xcode Console等工具来查看日志。然而,这种方式可能不够方便,并且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了极大的便利,本文将详细介绍其功能和使用方法。 克魔助手会提供两种日志,一种是实时的,一种的是崩溃的。(由于崩溃日志的环境很麻烦,目前只展示实时日志操作步骤)
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
3月前
|
算法 iOS开发 UED
iOS如何进行应用的性能优化?
iOS如何进行应用的性能优化?
39 2
|
2月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
|
26天前
|
安全 数据安全/隐私保护 虚拟化
iOS应用加固方案解析:ipa加固安全技术全面评测
iOS应用加固方案解析:ipa加固安全技术全面评测
36 3
|
1月前
|
运维 监控 安全
应用研发平台EMAS常见问题之sophix ios flutter热更新如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
77 0