MKMapView不缩放到区域

时间:2012-11-13 22:56:00

标签: iphone ios ipad mkmapview

我有一个MKMapView,我正在尝试设置地图,这样当您第一次加载应用程序时,它会转到用户设置的位置,如果用户没有设置,则转到默认地址。问题是它总是似乎是0纬度,0经度。

-(void) viewDidLoad {

  [worldView setShowsUserLocation:YES];

  double longitude = [[NSUserDefaults standardUserDefaults] doubleForKey:WhereamiNewLongPrefKey];

  double latitude = [[NSUserDefaults standardUserDefaults] doubleForKey:WhereamiNewLatPrefKey];

  CLLocationCoordinate2D savedLoc = CLLocationCoordinate2DMake(latitude, longitude);

  MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(savedLoc, 250, 250);

  NSLog(@"latitude :%f", region.center.latitude);      
  NSLog(@"longitude :%f", region.center.longitude);

  [worldView setRegion:region animated:YES];
}

我已尝试将setShowUserLocation设置为NO,但这不起作用。我知道它正在读取正确的区域,因为NSLog输出了默认的纬度,但地图坚持要去中国的某个地方...

我也尝试在mapView:didUpdateUserLocation:中设置区域,但结果仍然相同。

我做错了什么?

编辑:我添加了NSLog来输出经度。输出是:

2012-11-14 09:50:30.699 Whereami[34256:13d03] latitude :20.516700
2012-11-14 09:50:30.699 Whereami[34256:13d03] longitude :99.900000

1 个答案:

答案 0 :(得分:0)

CLLocationCoordinate2D theCoordinate;
theCoordinate.latitude = 20.516700;
theCoordinate.longitude = 99.900000;

MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(theCoordinate, 1000, 1000);
MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:viewRegion];  
[self.mapView setRegion:adjustedRegion animated:YES];