よくわかりません。私はMKMapViewを持っており、viewDidLoadメソッドで次のことを行います。
- (void)viewDidLoad {
mainDelegate = (PublicArtOmahaAppDelegate*)[[UIApplication sharedApplication]delegate];
XMLController *myXMLController = [[XMLController alloc] init];
[myXMLController parse];
mapView.showsUserLocation = YES;
[self gotoLocation];
// add annotations to map
[self.mapView addAnnotations:mainDelegate.mapAnnotations];
[myXMLController release];
}
[self gotoLocation]呼び出し:
- (void)gotoLocation
{
MKCoordinateRegion newRegion;
CLLocation *userLocation = mapView.userLocation.location;
float latitude = userLocation.coordinate.latitude;
float longitude = userLocation.coordinate.latitude;
newRegion.center.latitude = latitude;
newRegion.center.longitude = longitude;
[self.mapView setRegion:newRegion animated:YES];
}
そのため、mapViewが読み込まれたときに地図をユーザーの場所の中央に配置する必要があると考えました。また、ユーザーが必要なときにユーザーの場所を更新するために手動でgotoLocationを再度呼び出すボタンを画面に実装することも計画していました。
しかし...私がデバイスでアプリを実行すると、アフリカ西部の海のパッチを中心とした地図が読み込まれます。これは明らかに緯度が高く、長さが0,0です。奇妙だと思ったのは、実際の場所にズームバックすると、現在地が注釈として正しく配置されていたということです。では、gotoLocationでユーザーの場所を設定する方法に何か問題があると思いますか?誰かが私が間違っていることに気づきましたか?