Нарисуйте круг радиусом 1000 м вокруг расположение пользователей в MKMapView

(Использование 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 доступно только для чтения, мне приходится удалять оверлей, а затем добавлять новый каждый раз, когда пользователь перемещается. При этом возникает заметное мерцание.

Есть ли способ добиться плавного масштабирования аннотаций при увеличении и уменьшении масштаба карты? Или есть хороший способ плавно перемещать оверлей с изменением местоположения пользователей?

Буду очень благодарен за вашу помощь :)

58
задан Jon Cox 29 January 2012 в 20:28
поделиться