Решение этой проблемы довольно тривиально. Если у вас возникла проблема с реализацией этой библиотеки, почему бы не сделать это самостоятельно и не научиться чему-то? Вы просто создаете некоторый тип класса модели автомобиля, в котором хранятся координаты и предыдущая координата. Чтобы иметь возможность отображать его на карте, он должен придерживаться протокола MKAnnotation - реализовать: название, субтитры и координаты. Позиция NewCoordinate будет установлена по умолчанию при получении данных о местоположении из сети. Вам нужно отслеживать два значения для успешной анимации.
и таким образом реализовать что-то вроде этого:
@interface Vehicle : NSObject <MKAnnotation>
@property (nonatomic, readonly, copy) NSString *title;
@property (nonatomic, readonly, copy) NSString *subtitle;
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, assign) CLLocationCoordinate2D newCoordinate;
@end
После установки newCoordinate вы двигаетесь предыдущее значение из пользовательского сеттер в собственность координат. Как только вы это сделаете, вы просто будете анимировать аннотацию, как обычно.
// new coordinate obtained from networking
- (void)setNewCoordinate:(CLLocationCoordinate2D)newCoordinate {
// implement the value moving part
_newCoordinate = newCoordinate;
}
Но будьте осторожны при обнаружении кранов в анимационной аннотации из-за способа ее работы. Рамка аннотации будет установлена, когда анимация начнет отсчитывать значение готового кадра. Вам нужно будет использовать hitTest на презентационном слое аннотации, которая будет отображаться на экране во время анимации.
Для обработки отводы переопределять
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
}
одушевленные с
[UIView animateWithDuration:0
delay:0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
} completion:nil];
Я извиняюсь, но я не могу отправить код здесь, так как я уже реализовано это для моего работодателя и я связан контрактом ,
я рекомендовал использовать Google Maps SDK для лучшего решения об этом – Himanth
@himanth, как вы это говорите? , Будет ли яблоко одобрять, если я использую google SK для карт – Vinodh
Да, конечно, яблоко одобрит его – Himanth