参考:http://blog.sina.com.cn/s/blog_9e8867eb0101dt76.html
首先在MapView.h中
#import <MapKit/MapKit.h> @interface MapView : UIView<MKMapViewDelegate> { MKMapView* mapView; } @property (nonatomic, retain) MKMapView* mapView; -(void) drawline: (NSArray*)nowRoadArrary; @end
在MapView.m 中
#import "MapView.h" @implementation MapView @synthesize mapView; -(void) drawline: (NSArray*)nowRoadArrary { // 将array中的信息点转换成CLLocationCoordinate2D数组 CLLocationCoordinate2D coords[nowRoadArrary.count]; int i = 0; for (NSDictionary *newDic in nowRoadArrary) { CLLocationCoordinate2D annotationCoord; id lat = [newDic objectForKey:@"latitude"]; annotationCoord.latitude = [lat doubleValue]; annotationCoord.longitude = [[newDic objectForKey:@"longitude"] doubleValue]; coords[i] = annotationCoord; i++; } //用MKPolyline画线并作为overlay添加进mapView MKPolyline *cc = [MKPolyline polylineWithCoordinates:coords count:nowRoadArrary.count]; [mapView addOverlay:cc]; } //完成MapView的delegate - (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { if ([overlay isKindOfClass:[MKPolyline class]]) { //如果有MKPloylineView的overlay,将其画出 MKPolylineView *lineview=[[MKPolylineView alloc] initWithOverlay:overlay] ; //路线颜色 lineview.strokeColor=[UIColor colorWithRed:69.0f/255.0f green:212.0f/255.0f blue:255.0f/255.0f alpha:0.9]; lineview.lineWidth=8.0; return lineview; } return nil; }
调用MapView
- (void)viewDidLoad { //初始化 [super viewDidLoad]; MapView *mapView = [[MapView alloc] initWithFrame: CGRectMake(0, 244, self.view.frame.size.width,800)] ; [self.view addSubview:mapView]; //调用 NSDictionary *myplace[4]; myplace[0] = [NSDictionary dictionaryWithObjectsAndKeys: @"32.0816",@"latitude", @"118.892",@"longitude", nil]; myplace[1] = [NSDictionary dictionaryWithObjectsAndKeys: @"32.0856",@"latitude", @"118.892",@"longitude", nil]; myplace[2] = [NSDictionary dictionaryWithObjectsAndKeys: @"32.0716",@"latitude", @"118.92",@"longitude", nil]; myplace[3] = [NSDictionary dictionaryWithObjectsAndKeys: @"32.0766",@"latitude", @"118.982",@"longitude", nil]; NSArray *ary = [[NSArray alloc]initWithObjects:myplace[0],myplace[1],myplace[2],myplace[3], nil]; [mapView drawline:ary]; }