码迷,mamicode.com
首页 > 其他好文 > 详细

高德地图路径规划

时间:2015-10-02 16:01:32      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

高德地图导航sdk的路径规划获取行程信息主要用到AMapNaviManager这个类

然后调下面的方法

/*!
@brief 带起点的驾车路径计算
@param startPoints 起点坐标。支持多个起点,起点列表的尾点为实际导航起点,其他坐标点为辅助信息,带有方向性,可有效避免算路到马路的另一侧。
@param endPoints   终点坐标。支持多个终点,终点列表的尾点为实际导航终点,其他坐标点为辅助信息,带有方向性,可有效避免算路到马路的另一侧。
@param wayPoints   途经点坐标序列,同时支持最多3个途经点的路径规划。
@param strategy    驾车路径的计算策略
@return 路径是否计算成功
*/
- (BOOL)calculateDriveRouteWithStartPoints:(NSArray *)startPoints
endPoints:(NSArray *)endPoints
wayPoints:(NSArray *)wayPoints
drivingStrategy:(AMapNaviDrivingStrategy)strategy;

成功之后会走AMapNaviManagerDelegate的代理方法

/*!
@brief 驾车路径规划成功后的回调函数
*/
- (void)naviManagerOnCalculateRouteSuccess:(AMapNaviManager *)naviManager;

代理返回的AMapNaviManager就有路径信息

/*!
@brief 当前导航路径的信息
*/
@property (nonatomic, readonly) AMapNaviRoute *naviRoute;

当我们点进去看,找到了。。

 
/*!
@brief 导航路径总长度(单位:米)
*/
@property (nonatomic, assign) int routeLength;
/*!
@brief 导航路径所需的时间(单位:秒)
*/
@property (nonatomic, assign) int routeTime;
 

显示终点起点(添加到上面就行了)

/**
*  创建起点和终点的annitation(起点是定位点的话不创建传入的时候传入坐标就行了)
*/
- (void)addBeginAndEndAnnotation {
_endAnnotation = [[MAPointAnnotation alloc] init];
CLLocationCoordinate2D coordinate = {30.655593,104.073803};
[_endAnnotation setCoordinate:coordinate];
_endAnnotation.title        = @"终点";
[self.mapView addAnnotation:_endAnnotation];
_beginAnnotation = [[MAPointAnnotation alloc] init];
CLLocationCoordinate2D coordinatebegin = {30.612339,104.071503};
[_beginAnnotation setCoordinate:coordinatebegin];
_beginAnnotation.title        = @"起点";
[self.mapView addAnnotation:_beginAnnotation];
}

会调MAMapViewDelegate中的生成相应的anntation

/*!
@brief 根据anntation生成对应的View
@param mapView 地图View
@param annotation 指定的标注
@return 生成的标注View
*/
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation;

绘制路径(得到路径信息绘制)

- (void)showRouteWithNaviRoute:(AMapNaviRoute *)naviRoute
{
if (naviRoute == nil)
{
return;
}
// 清除旧的overlays
if (_polyline)
{
[self.mapView removeOverlay:_polyline];
self.polyline = nil;
}
NSUInteger coordianteCount = [naviRoute.routeCoordinates count];
CLLocationCoordinate2D coordinates[coordianteCount];
for (int i = 0; i < coordianteCount; i++)
{
AMapNaviPoint *aCoordinate = [naviRoute.routeCoordinates objectAtIndex:i];
coordinates[i] = CLLocationCoordinate2DMake(aCoordinate.latitude, aCoordinate.longitude);
}
_polyline = [MAPolyline polylineWithCoordinates:coordinates count:coordianteCount];
[self.mapView addOverlay:_polyline];
}

高德地图路径规划

标签:

原文地址:http://www.cnblogs.com/fshmjl/p/4852260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!