3
マップを移動して現在のユーザーの位置に移動する方法があります。これは正常に動作しますが、現在のところズームスケールは私が望むように動作しません。私は、ユーザーがマップをズームアウトまたはズームインできるようにしたいと思います。マップ上でユーザーが設定した新しいズームスケールで現在の位置に従います。MKMapView:現在のズームレベルを現在の位置に従います
私は、次の操作を実行しようとしたが、それはうまく動作しません:
/**
* Centers the map on the current location
*
* @version $Revision: 0.1
*/
- (void)centerMapOnLocation:(CLLocation *)location {
// Make a region using our current zoom level
CLLocationDistance latitude = mapView.region.span.latitudeDelta*100;
CLLocationDistance longitude = mapView.region.span.longitudeDelta*100;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location.coordinate, latitude, longitude);
[mapView setRegion:region animated:YES];
}//end
あなたは何を意味するのかよく分かりません。私はmapView.region.spanからスパンを得ることができるので、新しいマップを作る必要はありません。 –
正確に。ただし、現在のユーザーの場所に移動する場合は、mapViewをに設定するために新しいMKCoordinateRegionを作成する必要があります。しかし、MKCoordinateRegionMakeWithDistanceでそれを作成すると、スパンはデフォルト値にリセットされます。その代わりに、MKCoordinateRegionMakeで作成し、* current * spanに渡して、スパンが変更されないようにします。 – bdares
ああ、MKCoordinateRegionMakeWithDistanceではなくMKCoordinateRegionMakeを使用する必要がありました。ありがとう! –