我的应用程序中有一个方形MKMapView,我希望设置一个中心点和视图的确切高度/宽度(以米为单位).
创建MKCoordinateRegion并将地图设置为它(如此代码中所示...
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(center_coord, 1000.0, 1000.0);
[self.mapView setRegion:region animated:YES];
Run Code Online (Sandbox Code Playgroud)
..)无法正常工作,因为在这里使用区域只意味着至少显示该区域,通常比区域更多.
我打算使用setVisibleMapRect:animated:方法,因为我相信这会缩放到实际传递的MKMapRect.
那么,有一种简单的方法可以在MKcoordinateRegion和MKMapRect之间进行转换吗?也许获得该区域的左上角和右下角坐标,并使用它们来制作MKMapRect?
我在Map Kit函数参考中看不到任何方便的东西.
(使用iOS 5,Xcode 4.2)
我使用此代码在我的地图上显示我的所有注释:
MKMapRect zoomRect = MKMapRectNull;
for (id <MKAnnotation> annotation in mapView.annotations)
{
MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 1000);
if (MKMapRectIsNull(zoomRect)) {
zoomRect = pointRect;
} else {
zoomRect = MKMapRectUnion(zoomRect, pointRect);
}
}
[mapView setVisibleMapRect:zoomRect animated:YES];
Run Code Online (Sandbox Code Playgroud)
但我的问题是,当注释彼此接近时,由于矩形很小,它会缩放太多.
有任何解决这个问题的方法吗?