我正在尝试使用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链接,我现在正在看它们。可能是什么问题?
答案 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)