1

ユーザーがボタンをクリックすると、現在マップが機能しています。

ユーザーがボタンをクリックしたときに、マップにズームインし、ズームインするときにアニメーション化するにはどうすればよいですか。

メイン ファイルとヘッダー ファイルは次のとおりです。また、現在地を表示するにはどうすればよいですか?

よろしくお願いしますメインファイル

@synthesize map;


//Add Map overlay

-(MKOverlayView*)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay{



    MKCircleView* circleView =[[MKCircleView alloc] initWithOverlay:overlay];

    circleView.strokeColor = [UIColor blueColor];

    circleView.fillColor = [UIColor redColor];

    return circleView;



}


-(IBAction)onLocationButtonTop:(id)sender {





    UIBarButtonItem* b = (UIBarButtonItem*) sender;

    int tag = b.tag;



    float latitude = 40.0;

    float longitude  = -75.0;



    if(tag == 1){

        latitude = 57.15;longitude  = -2.15;

    }

    else if(tag == 2){

        latitude = 39.91;longitude  = 116.41;

    }

    else{

        latitude = -1.46;longitude  = -48.48;

    }



    CLLocationCoordinate2D x;

    x.latitude = latitude;

    x.longitude = longitude;









    MKCoordinateSpan z;

    z.latitudeDelta = 0.25;

    z.longitudeDelta = 0.25;



    MKCoordinateRegion y;

    y.center = x;

    y.span = z;



    map.region = y;

    [map addOverlay:[MKCircle circleWithCenterCoordinate:x

                                                 radius:1000]];



}

hファイル

#import <UIKit/UIKit.h>

#import <MapKit/MapKit.h>


@interface MapExampleK2ViewController : UIViewController <MKMapViewDelegate>



@property (strong,nonatomic) IBOutlet MKMapView* map;


-(IBAction)onLocationButtonTop:(id)sender;



@end
4

1 に答える 1

1

質問の 2 番目の部分では、CLLocationManager を使用して現在の場所を取得し、場所が更新されたときに setRegion を使用できます。http://developer.apple.com/library/ios/#samplecode/Regions/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010726に投稿されているリージョン コードを参照できます。

以下は、マップにフォーカスを現在の場所に設定しているコードの関数です。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    NSLog(@"didUpdateToLocation %@ from %@", newLocation, oldLocation);
    
        if (oldLocation == nil) {
        // Zoom to the current user location.
        MKCoordinateRegion userLocation = MKCoordinateRegionMakeWithDistance(newLocation.coordinate, 1500.0, 1500.0);
        [regionsMapView setRegion:userLocation animated:YES];
    }
}
于 2012-07-15T13:34:17.940 に答える