MKMapView的基础学习

本文详细介绍如何使用MKMapView显示地图,并在地图上添加标注。包括创建MKMapView、设定经纬度、设置显示范围等基本操作,以及如何通过实现MKAnnotation协议来添加自定义标注。


1.MKMapView的显示

(1)创建MKMapView

CGRectrect=CGRectMake(0,20,320,460);

MKMapView*mapView=[[MKMapViewalloc]initWithFrame:rect];

(2)设定经纬度

CLLocationCoordinate2DtheCoordinate;

theCoordinate.latitude=24.138727;

theCoordinate.longitude=120.713827;

(3)设定显示范围

MKCoordinateSpantheSpan;

theSpan.latitudeDelta=0.1;

theSpan.longitudeDelta=0.1;

(4)设置地图显示的中心及范围

MKCoordinateRegiontheRegion;

theRegion.center=theCoordinate;

theRegion.span=theSpan;

(5)设置地图显示的类型及根据范围进行显示

[mapViewsetMapType:MKMapTypeStandard];

[mapViewsetRegion:theRegion];

完成这些步骤,再把mapView添加到当前view中就可以显示了。

2.在MKMapView上添加标注

(1)和标注相关的类及协议

(a)MKAnnotationProtocol

标注必须实现这个协议,有三个属性,coordinate,title和subtitle,其中coordinate属性必须设置。

@property(nonatomic,readonly)CLLocationCoordinate2Dcoordinate

(b)MKAnnotationView

设置好Annotation后就可以用这个把标注在地图上显示出来,

-(id)initWithAnnotation:(id<MKAnnotation>)annotationreuseIdentifier:(NSString*)reuseIdentifier

其比较重要的属性有

@property(nonatomic,retain)UIImage*image

自定义在地图上标注的图片

@property(nonatomic)BOOLcanShowCallout

设置点击后能否弹出标注

@property(retain,nonatomic)UIView*rightCalloutAccessoryView

property(retain,nonatomic)UIView*leftCalloutAccessoryView

设置在标注的左右边点击后进一步弹出附属的View

(c)MKPinAnnotationView

这是以大头针的方式显示标注,继承自MKAnnotationView,同时添加了两个属性

@property(nonatomic)MKPinAnnotationColorpinColor

设置大头针的颜色,有红绿紫三种颜色可选择

@property(nonatomic)BOOLanimatesDrop

设置大头针是否以掉下来的动画方式显示

(2)在地图上添加Annotation的步骤

(a)创建一个实现MKAnnotation协议的类,在该类的初始化函数中给其coordinate属性设置

(b)用上述方法创建Annotation

(c)把创建的Annotation用addAnnotation的方法添加到MapView中

(d)实现MKMapViewDelegate代理,在代理函数

-(MKAnnotationView*)mapView:(MKMapView*)mViewviewForAnnotation:(id<MKAnnotation>)annotation中把Annotation以MKPinAnnotationView或MKAnnotationView的方式标注在地图上上显示。


附件demo:MapKit.zip

说明:

用UIGestureRecognizer获取到触摸地图的点坐标

再用下面的方法将点坐标转化为经纬度方法(很好很强大!!!)

-(CLLocationCoordinate2D)convertPoint:(CGPoint)pointtoCoordinateFromView:(UIView*)view

再在此经纬度处加大头针。既就完成了长按地图某一点,加大头针标记,点击大头针,弹出泡泡,点击泡泡按钮导航到指定页面的效果。


MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值