2012-01-26 16 views
0

iPadアプリケーションの場合、左側にTableViewを持つSplitViewがあり、レストランのリストが表示されます。右側には、それらのレストランの注釈を示すMapViewがあります。地図表示のハイライトアノテーション

私は注釈をズームしようとしています。左側の表の関連レストランをユーザーがクリックしたときに何らかの形で強調表示しています。

残念ながら、地図を再読み込みすることはできません。

これを解決する方法を教えてください。誰かが正常に動作しますトリガされ、表のセル「configureView」をクリックしたときに

はここで今私のviewDidLoad

- (void)viewDidLoad { 

    NSString *docsDir; 
    NSArray *dirPaths; 

    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    docsDir = [dirPaths objectAtIndex:0]; 

    databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"smshipaddec2011.db"]]; 
    const char *dbpath = [databasePath UTF8String]; 

    MapViewAnnotation *newAnnotation; 

    sqlite3_stmt *statement; 

    if (sqlite3_open(dbpath, &smshdb2) == SQLITE_OK) { 

     NSString *querySQL = [NSString stringWithFormat: @"SELECT vmapx, vmapy, vname, vsection FROM SMSHVENUES"]; 

     const char *query_stmt = [querySQL UTF8String]; 

     if (sqlite3_prepare_v2(smshdb2, query_stmt, -1, &statement, NULL) == SQLITE_OK) { 

      while(sqlite3_step(statement) == SQLITE_ROW) { 

       double latitude = sqlite3_column_double(statement, 0); 
       double longitude = sqlite3_column_double(statement, 1); 

       CLLocationCoordinate2D location; 
       location.latitude = latitude; 
       location.longitude = longitude; 

       newAnnotation = [[MapViewAnnotation alloc] initWithTitle:[[NSString alloc] initWithUTF8String: 
                      (const char *) sqlite3_column_text(statement, 2)] andCoordinate:location]; 
       [mapView addAnnotation:newAnnotation]; 
       [newAnnotation release]; 

      } 

      sqlite3_finalize(statement); 

     } 

     sqlite3_close(smshdb2); 
    } 



    mapView.showsUserLocation = YES; 

    [mapView setMapType:MKMapTypeStandard]; 
    [mapView setZoomEnabled:YES]; 
    [mapView setScrollEnabled:YES]; 

    CLLocation *userLoc = mapView.userLocation.location; 
    CLLocationCoordinate2D userCoordinate = userLoc.coordinate; 

    MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 

    //this is Shanghai: 
    region.center.latitude = 31.227849 ; 
    region.center.longitude = 121.473770; 

    region.span.longitudeDelta = 0.02f; 
    region.span.latitudeDelta = 0.02f; 

    [mapView setRegion:region animated:YES]; 

    [super viewDidLoad]; 

} 

です。しかし、私はマップを移動する方法、その注釈をズームし、おそらく色を変更するか、それを大きくする方法はわかりません。

- (void)configureView { 

    // animate map 
    // zoom to annotation 
    // make it bigger or change colour 

} 

本当に助けていただきありがとうございます。

答えて

1

MKMapViewは、このためのシンプルなAPIがあります:[のMapViewのsetRegion:アニメーション:]

:ユーザーの選択に応じて

を、あなたのような何かを呼び出します。

あなたが表示しているものを適切にズームインする必要があります。

+0

ありがとうございました。それはうまくいった。 – user1104325

関連する問題