私のマップ ビューには、1 つの中心点で多くのピンポイントをカバーする 1 つの円が含まれています。ユーザーがボタンをクリックするたびに、円が表示されるようなレベルでマップをズームする必要があります。マップを多かれ少なかれズームしてはならず、正確な円を表示する必要があります。ユーザーがログアウトすると、次のログインで円に新しい半径が設定されます。適切なズーム レベルの計算方法。私のコード:
-(void)showCircle{
//calculate new radius
long radius=[self calculateRadius];
MKCircle *circle= [[MKCircle alloc]init];
circle = [MKCircle circleWithCenterCoordinate:CLLocationCoordinate2DMake([groupLat floatValue], [groupLon floatValue]) radius:radius];
[myMapView addOverlay:circle];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake([groupLat floatValue], [groupLon floatValue]), 800, 800);
MKCoordinateSpan span;
//calculate zoom level
double radius=[circle radius]);
double rad = radius + radius / 2;
double scale = rad / 500;
zoomLevel=(16 - log(scale) / log(2));
region.span.latitudeDelta =zoomLevel;
region.span.longitudeDelta =zoomLevel;
[myMapView setRegion:region animated:YES];
}
前もって感謝します!