Как нарисовать и удалить полилинию с анимацией на GoogleMap в iOS? - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу нарисовать и удалить полилинию с анимацией на GoogleMap, как и Uber.В настоящее время я могу анимировать во время рисования (не так гладко, как в Uber), но при удалении нет плавности.

Как мне добиться следующих вещей?:

  1. Продолжительность рисования полилинии должна быть одинаковой независимо от длины пути.
  2. При удалении полилинии я хочу сделать это с анимацией затухания.

Вотсоответствующий код.

@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;
     } 
   }
}
...