0

私のマップは、NSUserDefaults に保存されている場所にズームすることになっています。私のピンは地図上に表示されますが、地図は海に向かっており、まったくズームしません。これが私のコードです。私は何を間違っていますか?

私は定義しました#define METERS_PER_MILE 1609.344

-(void)viewWillAppear:(BOOL)animated{

    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    if ([ud boolForKey:@"headquarters_coordinates"])
    {
        CLLocationCoordinate2D savedCoordinate;
        savedCoordinate.latitude = [ud doubleForKey:@"headquarters_latitude"];
        savedCoordinate.longitude = [ud doubleForKey:@"headquarters_longitude"];
        //create annotation object using savedCoordinate and add to map view...
        NSLog(@"Your HQ is at coordinates %f and %f",savedCoordinate.latitude, savedCoordinate.longitude);



        MapViewAnnotation *ann1 =[[MapViewAnnotation alloc] init];
        ann1.title=@"HQ";
        ann1.subtitle=@"";
        ann1.coordinate= savedCoordinate;
        [mapView addAnnotation:ann1];



        MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(savedCoordinate, 0.5*METERS_PER_MILE, 0.5*METERS_PER_MILE);


        [mapView setRegion:viewRegion animated:YES];

    }  

}
4

1 に答える 1

2

動作するコードの例を次に示します。お役に立てば幸いです (「MKCoordinateRegionadjustRegion = [mapView regionThatFits:viewRegion];」をコードに挿入する必要があると思います)。ズームをアニメーション化する場合は、コードを viewdidapear に移動します。

#define METERS_PER_MILE 1609.344

CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude =[mylatitude floatValue];
zoomLocation.longitude = [mylongitude floatValue];

MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.1*METERS_PER_MILE, 0.1*METERS_PER_MILE);
MKCoordinateRegion adjustedRegion = [mapViewElement regionThatFits:viewRegion];
[mapViewElement setRegion:adjustedRegion animated:YES];
于 2013-09-09T06:54:18.267 に答える