导航路径规划返回了导航路径的所有形状点,因此分析相对简单
//路线解析
- (MAPolyline *)polylinesForPath:(NSArray *)path{
if (path == nil || path.count == 0){
return nil;
}
CLLocationCoordinate2D *coordinates = (CLLocationCoordinate2D*)malloc(path.count * sizeof(CLLocationCoordinate2D));
for (int i = 0 ; i < path.count; i ++) {
AMapNaviPoint *point = path[i];
coordinates[i].longitude = point.longitude;
coordinates[i].latitude = point.latitude;
}
MAPolyline *polyline = [MAPolyline polylineWithCoordinates:coordinates count:path.count];
free(coordinates), coordinates = NULL;
return polyline;
}
无论是通过AMapSearchKit还是AMapNaviKit进行路线规划,最终都将在-(MAOverlayRenderer *)mapView: (MAMapView *)mapView rendererForOverlay: (id
- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id<MAOverlay>)overlay{
if ([overlay isKindOfClass:[MAPolyline class]]){
MAPolyline *polyline = (MAPolyline *)overlay;
MAPolylineRenderer *polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:polyline];
//添加纹理图片
//若设置了纹理图片,设置线颜色、连接类型和端点类型将无效。
polylineRenderer.strokeImage = [UIImage imageNamed:@"wenli"];
polylineRenderer.lineWidth = 20.f;
// polylineRenderer.strokeColor = [UIColor colorWithRed:0 green:1 blue:0.5 alpha:0.8];
// polylineRenderer.lineJoinType = kMALineJoinRound;
// polylineRenderer.lineCapType = kMALineCapRound;
// polylineRenderer.miterLimit = 1.f;
return polylineRenderer;
}
return nil;
}
设置折线的纹理图像(仅3D地图支持).
纹理材料格式: 纹理图像必须为正方形,并且宽度和高度为2的整数次幂,例如64 * 64,否则无效;如果设置了纹理图像,则线条颜色,连接类型和端点类型将无效.
注意: 折线目前仅支持纹理,而其他叠加层目前不支持纹理.
图片看起来像这样:

wenli.png
只要满足上述条件,您还可以根据实际需要让UI进行操作.

Final effect.png
-END-
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-203576-2.html
一个生病孩子急需大家的帮助