您的位置:首页 > 其它

地图划线

2016-04-28 13:49 204 查看
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>

@interface ViewController ()<MKMapViewDelegate>

@property(nonatomic ,strong)MKMapView * map;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

MKMapView * map = [[MKMapView alloc]initWithFrame:self.view.bounds];

self.map = map;

self.map.delegate = self;

[self.view addSubview:map];

CLGeocoder * geoCode = [[CLGeocoder alloc]init];

[geoCode geocodeAddressString:@"北京" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {

//通过coreLocation 的CLPlacemark 获取地面 装换为MKPlacemark

MKPlacemark * place1 = [[MKPlacemark alloc]initWithPlacemark:[placemarks firstObject]];

[geoCode geocodeAddressString:@"武汉" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {

MKPlacemark * place2 = [[MKPlacemark alloc]initWithPlacemark:[placemarks firstObject]];

//创建方向请求
MKDirectionsRequest * request = [[MKDirectionsRequest alloc]init];

request.source = [[MKMapItem alloc]initWithPlacemark:place1];

request.destination = [[MKMapItem alloc]initWithPlacemark:place2];

//创建方向对象
MKDirections * direction = [[MKDirections alloc]initWithRequest:request];

//计算方向 添加蒙版 也就是划线
[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) {

for (MKRoute * route in response.routes) {

[self.map addOverlay:route.polyline];

}

}];

}];
}];

}

//当添加折线时,调用 , 返回一个折线渲染器
-(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{

MKPolylineRenderer * polylineRenderer = [[MKPolylineRenderer alloc]initWithPolyline:overlay];

polylineRenderer.lineWidth = 2;

polylineRenderer.strokeColor = [UIColor orangeColor];

return polylineRenderer;

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: