質問

どのように私は私のアプリで自動的に私の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を誘発されなかった。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top