MKDirections绘制导航路线
来源:互联网 发布:js数组删除空元素 编辑:程序博客网 时间:2024/05/22 05:13
//// ViewController.m// DrawNavLine//// Created by hq on 16/5/18.// Copyright © 2016年 hanqing. All rights reserved.//#import "ViewController.h"#import <MapKit/MapKit.h>@interface ViewController () <MKMapViewDelegate>@property(nonatomic,strong) CLGeocoder *geo;@property (weak, nonatomic) IBOutlet MKMapView *mapView;- (IBAction)startNav;@end@implementation ViewController-(CLGeocoder *)geo{ if (_geo==nil) { _geo=[[CLGeocoder alloc]init]; } return _geo;}- (void)viewDidLoad { [super viewDidLoad]; self.mapView.delegate=self;}//开始导航- (IBAction)startNav { [self.geo geocodeAddressString:@"shanghai" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { MKPlacemark *mkPlaceMark=[[MKPlacemark alloc]initWithPlacemark:placemarks.firstObject]; //起点 MKMapItem *beigin=[[MKMapItem alloc]initWithPlacemark:mkPlaceMark]; [self.geo geocodeAddressString:@"北京" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { MKPlacemark *mkEndPlaceMark=[[MKPlacemark alloc]initWithPlacemark:placemarks.firstObject]; //终点 MKMapItem *end=[[MKMapItem alloc]initWithPlacemark:mkEndPlaceMark]; //开始计算 [self beginCalculate:beigin endItem:end]; }]; }];}-(void) beginCalculate:(MKMapItem *) beginItem endItem:(MKMapItem *) endItem{ MKDirectionsRequest *request=[[MKDirectionsRequest alloc]init]; [request setSource:beginItem]; [request setDestination:endItem]; MKDirections *directions=[[MKDirections alloc]initWithRequest:request]; //开始计算位置距离 [directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) { if (error) { NSLog(@"出错了"); return; } [response.routes enumerateObjectsUsingBlock:^(MKRoute * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { NSLog(@"%@",obj.name); /** * MKDirectionsResponse routes : 路线数组MKRoute */ /** * MKRoute name : 路线名称 distance : 距离 expectedTravelTime : 预期时间 polyline : 折线(数据模型) steps */ /** * steps <MKRouteStep *> instructions : 行走提示 */ MKPolyline *polyline=obj.polyline; [self.mapView addOverlay:polyline]; }]; }];}/** * 获取对应的图层渲染 * * @param mapView 地图 * @param overlay 覆盖层数据模型 * * @return 图层渲染 */-(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay{ NSLog(@"hah"); //创建一个渲染对象 MKPolylineRenderer *render=[[MKPolylineRenderer alloc]initWithOverlay:overlay]; render.lineWidth=6; //注意,必须要设置该颜色,不然会看不到线------------------------------------ render.strokeColor=[UIColor orangeColor]; return render;}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; }@end
0 0
- MKDirections绘制导航路线
- 105 获取路线信息和绘制导航线
- iOS 硬件 导航 - 系统请求数据 绘制路线
- iOS 7 导航 路线
- 简易绘制地图路线
- 地图绘制路线
- MKMapView绘制路线
- swift地图定位(十八)发送网络请求给苹果服务器获取导航路线并解析和绘制到MKMapView
- ROS 导航 :make_plan (路线规划)
- Android学习进阶路线导航
- ROS 导航 :make_plan (路线规划)
- android实现简单的路线导航功能
- Android学习进阶路线导航线路
- Android学习进阶路线导航线路
- Android学习进阶路线导航线路
- Android学习进阶路线导航线路
- html5实现地图上定位导航路线
- Android学习进阶路线导航线路
- 用单链表实现双向队列
- Android requestWindowFeature崩溃
- Ehcache详细解读
- Angularjs国际化
- 用Java处理大数据小技巧总结
- MKDirections绘制导航路线
- Problem A - Sum Kind Of Problem 2015 ACM/ICPC Greater New York Region
- eclipse clean后不能自动编译生成class文件的问题
- cocos2d-x手游性能优化总结
- mssql表变量和临时表
- Linux下配置Python开发环境vim
- GL_BOOK_1
- Android Studio 百度地图 230错误 Scode码校验失败
- YII 自动生成实体模版