Я хочу нарисовать и удалить полилинию с анимацией на GoogleMap
, как и Uber
.В настоящее время я могу анимировать во время рисования (не так гладко, как в Uber), но при удалении нет плавности.
Как мне добиться следующих вещей?:
- Продолжительность рисования полилинии должна быть одинаковой независимо от длины пути.
- При удалении полилинии я хочу сделать это с анимацией затухания.
Вотсоответствующий код.
@property(nonatomic, strong) GMSPath *poolRidePath;
@property (nonatomic,assign) int counter;
@property (nonatomic,strong) GMSMutablePath *trackPath;
@property (nonatomic,strong) GMSPolyline *yellowPolyLine;
@property (nonatomic,strong) NSMutableArray *arrayPolylineYellow;
@property (nonatomic,strong) GMSMapView *mapView;
.....
.....
.....
double time = 0.8/self.poolRidePath.count;
self.timerForPathProgressAnimation = [NSTimer scheduledTimerWithTimeInterval: time repeats:true block:^(NSTimer * _Nonnull timer) {
[self animateMapRouteLine: self.poolRidePath];
}];
.....
.....
.....
-(void)animateMapRouteLine:(GMSPath *)path {
if (self.counter < path.count) {
[self.trackPath addCoordinate:[path coordinateAtIndex: self.counter]];
self.yellowPolyLine = [GMSPolyline polylineWithPath: self.trackPath];
self.yellowPolyLine.strokeColor = [[CommonFunctions shareCommonMethods] colorFromHexString:@"#e6b800"];
self.yellowPolyLine.strokeWidth = 3;
self.yellowPolyLine.map = self.mapView;
[self.arrayPolylineYellow addObject: self.yellowPolyLine];
self.counter++;
} else {
self.counter = 0;
self.trackPath = [[GMSMutablePath alloc] init];
for (GMSPolyline *line in self.arrayPolylineYellow) {
line.map = nil;
}
}
}