[ios]MKMapView中使用MKPolyline画线

参考: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];
}

 

posted @ 2015-08-05 15:42  南水之源  阅读(2157)  评论(0编辑  收藏  举报