(Использование iOS 5 и Xcode 4.2)
У меня есть MKMapView, и я хочу нарисовать круг радиусом 1000 м вокруг местоположения пользователя.
На первый взгляд может показаться, что реализация метода делегирования представления карты mapView: viewForAnnotation: и добавление настраиваемого MKAnnotationView для местоположения пользователя было бы идеальным решением.Это будет выглядеть примерно так:
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id )annotation
{
// If it's the user location, return my custom MKAnnotationView.
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return myCustomAnnotationView;
} else {
return nil;
}
}
Однако аннотации на карте не масштабируются при увеличении и уменьшении масштаба карты.
Итак, я попытался добавить наложение (потому что наложение масштабируется с картой), используя класс MKCircle и установив его координаты на последние координаты от моего делегата locationManger / map. Однако, поскольку свойство координат MKCircle доступно только для чтения, мне приходится удалять оверлей, а затем добавлять новый каждый раз, когда пользователь перемещается. При этом возникает заметное мерцание.
Есть ли способ добиться плавного масштабирования аннотаций при увеличении и уменьшении масштаба карты? Или есть хороший способ плавно перемещать оверлей с изменением местоположения пользователей?
Буду очень благодарен за вашу помощь :)