(iOS 5 と Xcode 4.2 を使用)
MKMapView があり、ユーザーの位置を中心に半径 1000m の円を描きたいと考えています。
表面的には、mapView:viewForAnnotation: マップ ビュー デリゲート メソッドを実装し、ユーザーの場所にカスタム MKAnnotationView を追加することが、完璧なソリューションになるように見えます。次のようになります。
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)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の座標プロパティは読み取り専用であるため、オーバーレイを削除してから、ユーザーが移動するたびに新しいオーバーレイを追加する必要があります。それが起こると、顕著なちらつきを引き起こします。
マップ ビューの拡大縮小に合わせて注釈をシームレスに拡大縮小する方法はありますか? または、ユーザーの場所の変化に合わせてオーバーレイをシームレスに移動させる良い方法はありますか?
私はあなたの助けにとても感謝しています:)