//
//  AMapPathRoute.h
//  react-native-anavi
//
//  Created by xiuyanger on 2020/9/15.
//

@import UIKit;
@import AMapNaviKit;
@import AMapSearchKit;

#import "AMapPathAnnotation.h"
#import "AMapPathPolyline.h"
#import "AMapLineDashPolyline.h"
#import "AMapPathMultiPolyline.h"

@interface AMapPathRoute : NSObject

/// 是否显示annotation, 显示路况的情况下无效。
@property (nonatomic, assign) BOOL anntationVisible;

@property (nonatomic, strong) NSArray *routePolylines;
@property (nonatomic, strong) NSArray *naviAnnotations;

@property (nonatomic, strong) UIImage *nodeMarkerIcon;

@property (nonatomic, assign) CGFloat pathWidth;
/// 普通路线颜色
@property (nonatomic, strong) UIColor *routeColor;
/// 步行路线颜色
@property (nonatomic, strong) UIColor *walkingColor;
/// 铁路路线颜色
@property (nonatomic, strong) UIColor *railwayColor;
/// 多彩线颜色
@property (nonatomic, strong) NSArray<UIColor *> *multiPolylineColors;
/// 多彩线路线coordinates
@property (nonatomic, strong) NSArray *coordinates;

@property (nonatomic, assign) BOOL selected;

- (void) clear;

- (void)addToMapView:(MAMapView *)mapView;

- (void)removeFromMapView;

- (void)setNaviAnnotationVisibility:(BOOL)visible;

+ (instancetype)naviRouteForTransit:(AMapTransit *)transit startPoint:(AMapGeoPoint *)start endPoint:(AMapGeoPoint *)end;

+ (instancetype)routeForPath:(AMapPath *)path withNaviType:(AMapPathAnnotationType)type showTraffic:(BOOL)showTraffic startPoint:(AMapGeoPoint *)start endPoint:(AMapGeoPoint *)end;

+ (instancetype)naviRouteForFuturePath:(AMapFutureTimeInfoElement *)element withNaviType:(AMapPathAnnotationType)type showTraffic:(BOOL)showTraffic startPoint:(AMapGeoPoint *)start endPoint:(AMapGeoPoint *)end;

+ (instancetype)naviRouteForPolylines:(NSArray *)polylines andAnnotations:(NSArray *)annotations;


- (instancetype)initWithTransit:(AMapTransit *)transit startPoint:(AMapGeoPoint *)start endPoint:(AMapGeoPoint *)end;

- (instancetype)initWithPath:(AMapPath *)path withNaviType:(AMapPathAnnotationType)type timeInfos:(AMapFutureTimeInfoElement *)element showTraffic:(BOOL)showTraffic startPoint:(AMapGeoPoint *)start endPoint:(AMapGeoPoint *)end;

- (instancetype)initWithPolylines:(NSArray *)polylines andAnnotations:(NSArray *)annotations;


@end
