質問
どのように私は私のアプリで自動的に私のuserLocation上の地図をズームすることができますか? 私はマップにzommするために、次のコードを持っているが、私はuserLocationにズームインする必要がありますし、次のコードでは、アフリカに常にズームする?
MKCoordinateRegion zoomIn = mapView.region;
zoomIn.span.latitudeDelta *= 0.2;
zoomIn.span.longitudeDelta *= 0.2;
zoomIn.center.latitude = mapView.userLocation.location.coordinate.latitude;
zoomIn.center.longitude = mapView.userLocation.location.coordinate.longitude;
[mapView setRegion:zoomIn animated:YES];
解決
OK私は、次のデリゲートメソッドで、問題を解決します:
-(void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views{
for(MKAnnotationView *annotationView in views) {
if(annotationView.annotation == mv.userLocation){
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.9;
span.longitudeDelta=0.9;
CLLocationCoordinate2D location =mv.userLocation.coordinate;
location = mv.userLocation.location.coordinate;
region.span = span;
region.center = location;
[mv setRegion:region animated:TRUE];
[mv regionThatFits:region];
}
}
}
他のヒント
おかげで、これは非常に私を助け、チームメイトがたくさん。本当に理由は私の担当者レベルの投票が、カントたかっます。
私はまた、使用していることを発見しました
mapView.userLocation.location.coordinate.latitude;
は常にアフリカに私をズームして、私の現在の場所に私を中心としたことがありません。
しかし、デリゲートメソッドを使用します:
-(void)mapView:(MKMapView *)myMapView didAddAnnotationViews:(NSArray *)views {
私は正常にこの問題を解決することができました。私が発見したことはmapView.userLocation.location.coordinate.latitudeを使用した場合ということです。 viewDidLoadメソッドで、したがって、それは間違ったCOORDSを表示し、ビューの起動時に正しいユーザーCOORDSを誘発されなかった。
所属していません StackOverflow