一.基本知识
目前主流的智能手机大部分都支持GoogleMap地图程序,而手机上的地图程序确实能给我们的出行带来很大的方便。在iPhone中利用MapKit框架可以很方便的显示Google地图,并且可以在地图上添加标注。
二.具体介绍
1.MKMapView的显示
(1)创建MKMapView
CGRect rect = CGRectMake(0, 20, 320, 460); |
MKMapView *mapView = [[MKMapView alloc] initWithFrame:rect]; |
(2)设定经纬度
CLLocationCoordinate2D theCoordinate; |
theCoordinate.latitude=24.148926; |
theCoordinate.longitude=120.715542; |
(3)设定显示范围
MKCoordinateSpan theSpan; |
theSpan.latitudeDelta=0.1; |
theSpan.longitudeDelta=0.1; |
(4)设置地图显示的中心及范围
MKCoordinateRegion theRegion; |
theRegion.center=theCoordinate; |
(5)设置地图显示的类型及根据范围进行显示
[mapView setMapType:MKMapTypeStandard]; |
[mapView setRegion:theRegion]; |
完成这些步骤,再把mapView添加到当前view中就可以显示了。
2.在MKMapView上添加标注
(1)和标注相关的类及协议
(a)MKAnnotation Protocol
标注必须实现这个协议,有三个属性,coordinate,title和subtitle,其中coordinate属性必须设置。
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate
(b)MKAnnotationView
设置好Annotation后就可以用这个把标注在地图上显示出来,
- ( id )initWithAnnotation:( id <MKAnnotation>)annotation reuseIdentifier:( NSString *)reuseIdentifier
|
其比较重要的属性有
@property (nonatomic, retain) UIImage *image
自定义在地图上标注的图片
@property (nonatomic) BOOL canShowCallout
设置点击后能否弹出标注
@property (retain, nonatomic) UIView *rightCalloutAccessoryView
property (retain, nonatomic) UIView *leftCalloutAccessoryView
设置在标注的左右边点击后进一步弹出附属的View
(c)MKPinAnnotationView
这是以大头针的方式显示标注,继承自MKAnnotationView,同时添加了两个属性
@property (nonatomic) MKPinAnnotationColor pinColor
设置大头针的颜色,有红绿紫三种颜色可选择
@property (nonatomic) BOOL animatesDrop
设置大头针是否以掉下来的动画方式显示
(2)在地图上添加Annotation的步骤
(a)创建一个实现MKAnnotation协议的类,在该类的初始化函数中给其coordinate属性设置
(b)用上述方法创建Annotation
(c)把创建的Annotation用addAnnotation的方法添加到MapView中
(d)实现MKMapViewDelegate代理,在代理函数
- (MKAnnotationView *)mapView:(MKMapView *)mView
viewForAnnotation:(id
<MKAnnotation>)annotation中把Annotation以MKPinAnnotationView或
MKAnnotationView的方式标注在地图上上显示。
分享到:
相关推荐
在iOS开发中,`MKMapView`是苹果地图框架的一部分,用于在地图上显示地理位置和信息。本篇文章将深入探讨如何在`MKMapView`上绘制GPS轨迹路径,并支持类似Google Maps的缩放功能。 首先,我们需要了解`MKMapView`的...
在iOS开发中,`MKMapView`是苹果提供的地图视图组件,用于展示地图信息和位置。`CalloutView`则是`MKMapView`中一个重要的特性,通常用来显示用户点击地图上的Annotation(标注)时出现的提示信息。默认情况下,`...
在iOS开发中,`MKMapView`是苹果提供的一个强大的地图视图组件,它允许开发者集成Apple Maps到自己的应用中,展示地理位置信息,并进行各种交互操作。本篇文章将深入讲解如何在`MKMapView`上实现长按屏幕添加大头针...
TSClusterMapView, 用于iOS和OSX的动画集群 MKMapView TSClusterMapView - 带集群的MKMapView动画注释集群MKMapView子类基于 ADClusterMapView 。用法要运行示例项目,克隆 repo,然后从示例目录中运行 pod install ...
【FlyoverKit】是一个开源项目,专为 iOS 开发者设计...不过,具体实现细节可能会在 FlyoverKit-master 子文件中有所体现,包括源代码、示例项目、文档和测试用例,这些都是深入学习和定制 FlyoverKit 功能的重要资源。
在Swift开发中,使用ARKit(增强现实框架)与MKMapView(地图视图)结合,可以创建出一种独特...通过学习和理解这个项目,你不仅可以掌握在Swift中使用ARKit和MapKit的技巧,还能进一步提升在增强现实领域的开发能力。
在iOS开发中,`MKMapView` 是苹果提供的地图视图组件,用于展示地图并进行相关交互。本主题聚焦于如何在`MKMapView`上同时显示多个自定义的气泡(callouts),并通过手势来实现这一功能。这在地图应用中非常常见,...
MTDirectionsKit, 在MKMapView之上,直接显示方向 为什么 MTDirectionsKit?为什么苹果没有为你提供直接显示在MKMapView之上的方法,强迫你在中 switch,只是为了引导你的用户在某个地方。 我们也是这样,所以我们...
MKMapView在中国显示地图和卫星图存在位置上的偏差,因此很多时侯在定位跟踪的时候常常是卫星定位而标准地图显示,因此常发现位置点不居中显示,当然这个可以使用开启用户位置跟踪模式来进行定位。本DEMO也正是利用...
在iOS开发中,地图服务是常见且重要的功能之一,苹果提供的`MKMapView`类使得集成地图变得简单。然而,开发者可能会遇到一些棘手的问题,比如内存泄漏。标题为“MKMapView_Memory_Leak_Demo”的示例着重讨论了在使用...
系统地图MKMapView的定位及导航 UISearchController模糊查询点击每个UITableViewCell 在地图上显示大头针 ,点击大头针的右边到这里去,调用系统导航,模糊查询数据源来自百度api 写的有点简单,有点乱
在iOS开发中,GPS定位是实现地图应用和位置服务的关键技术。标题提到的"GPS定位MKMapView,CoreLocation"涉及到两个主要的Apple...通过分析和学习这些示例,开发者可以更好地理解和掌握在iOS应用中集成GPS定位的方法。
通过学习这个示例,开发者能够实现类似Google Maps的路径规划功能,为用户提供导航服务。同时,理解`MKMapView`和`MKOverlay`的使用也是iOS地图开发的基础,对于开发其他类型的地图应用也大有裨益。
从 MKMapView 取出来的经纬度去 Google Maps API 做逆地址解析终于对了。去百度地图API做逆地址解析,依旧是错的! 从上面两处取的经纬度放到百度地图上显示都是错的!错的!的! 分为 地球坐标,火星坐标(iOS...
在 MKMapView 中实现地址选择和导航功能。具有以下特点: 1:支持ios5~7 2:自定义MKAnnotationView 3:支持第三方导航功能、包括高德、百度、苹果、谷歌,以及绘制路线,类似微信发生地址 4:支持滑动地图,选择...
kingpin, 在MKMapView的地图注释集群库中, kingpin一种面向iOS的MKAnnotation集群库。 特性使用 2-d 树,以实现最大性能。无需子类化,使库易于与现有项目集成。安装 CocoaPods要在 Podfile 中获得稳定的发行版,请...
总之,通过学习和理解DXCustomCallout-ObjC项目,开发者可以掌握如何在MKMapView上实现自定义Callouts,从而提升地图应用的用户体验。无论是为了展示更丰富的信息,还是为了提供更个性化的视觉效果,自定义Callouts...
当`MKMapView`需要显示标注时,它会调用`- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation`代理方法。在该方法中,你可以检查`annotation`是否是你需要自定义的类型,然后...
RxMKMapView是MKMapView(MapKit) delegate的包装器,提供了React式委托代理以及可绑定的注释接口,以动态更改地图的“数据源”。 安装 RxMKMapView可通过。 要安装它,只需将以下行添加到您的Podfile中: pod ...
在iOS开发中,地图应用是常见且...进一步学习和掌握`MKMapView`的相关API,你可以实现更复杂的功能,如搜索、路线规划、信息窗口等。在Swift中,利用Apple提供的地图框架,开发者可以轻松地构建出功能强大的地图应用。