zoukankan      html  css  js  c++  java
  • [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];
    }
    
  • 相关阅读:
    nullptr 与 null
    nullptr 与 null
    UNREFERENCED_PARAMETER 的作用
    Kali-Linux无线网络渗透测试-李亚伟-第3章-监听WiFi网络--虚拟机使用无线网卡
    探寻Linux背后的“美丽心灵”——Linux创始人Linus Torvalds访谈录
    Angular2(Beta)入门
    angular2 will be kiiled by react in the future?
    《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)前言
    Angular vs React – so which do I chose?
    2015-2016前端知识体系
  • 原文地址:https://www.cnblogs.com/lyggqm/p/4704875.html
Copyright © 2011-2022 走看看