MKMapView设置区域

时间:2011-08-18 05:06:04

标签: iphone objective-c mkmapview

我正在尝试使用MKMapView。我成功地制作了世界地图。但是,我似乎无法改变这个地区:

我有一个执行此操作的按钮:

NSLog(@"%f, %f, %f, %f,
mapView.region.center.latitude,
mapView.region.center.longitude,
mapView.region.span.latitudeDelta,
mapView.region.span.longitudeDelta);

现在,在我的viewDidLoad方法中,我尝试设置要查看的起始区域:

CLLocationCoordinate2D startCoord;
startCoord.latitude = 49.0;
startCoord.longitude = -123.0;
[mapView setRegion:MKCoordinateRegionMakeWithDistance(startCoord, 200, 200) animated:YES];

当视图加载时,它会显示相同的世界地图,而不是预期的较小区域。立即记录区域的属性给了我:

0.000000,0.001417,0.000000,0.000000

稍微移动地图,调整大小和缩放不会改变这些值(除了第二个值回到0.000000)。

看起来mapView.region与我在屏幕上看到的并不对应,但我确信我正确地制作了IB链接,我现在正在看它们。可能是什么问题?

2 个答案:

答案 0 :(得分:24)

你需要做

CLLocationCoordinate2D startCoord = CLLocationCoordinate2DMake(49, -123);
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:MKCoordinateRegionMakeWithDistance(startCoord, 200, 200)];
[mapView setRegion:adjustedRegion animated:YES];

答案 1 :(得分:0)

用于Swift代码

let coordinate = CLLocationCoordinate2D(latitude: 49, longitude: -123)
let region = self.mapView.regionThatFits(MKCoordinateRegion(center: coordinate, latitudinalMeters: 200, longitudinalMeters: 200))
self.mapView.setRegion(region, animated: true)
相关问题