MKMapView的基础学习


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

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

@property(nonatomic,readonly)CLLocationCoordinate2Dcoordinate

bMKAnnotationView

设置好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

cMKPinAnnotationView

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

@property(nonatomic)MKPinAnnotationColorpinColor

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

@property(nonatomic)BOOLanimatesDrop

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

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

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

b)用上述方法创建Annotation

c)把创建的AnnotationaddAnnotation的方法添加到MapView

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

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


附件demo:MapKit.zip

说明:

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

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

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

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


你可能感兴趣的:(MapView)