我正在使用MKMapView并在地图上绘制了几个点.我已经使用了MKCoordinateRegion和MKCoordinateSpan围绕其中一个点启用缩放等 - 但这不是我想要的......
我正在尝试使用类似于Javascript zoom to bounds功能的东西.所以我的所有要点都应该对用户可见.(英国各地将有大约10个点)我想向他们展示所有这些,或者如果他们大多数都在伦敦地区,请放大到那里.
有没有办法以编程方式解决这个问题?
我使用此代码在我的地图上显示我的所有注释:
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)
但我的问题是,当注释彼此接近时,由于矩形很小,它会缩放太多.
有任何解决这个问题的方法吗?
我一直在寻找一种解决方案来缩放MapView以适应Swift中MKPolyline的边界.我已经能够在SO上找到Objective-C的示例代码,但我并不熟悉Objective-C或者如何将它转换为Swift.
有没有人在Swift中有这样的例子?谢谢.
-(void)zoomToPolyLine: (MKMapView*)map polyline: (MKPolyline*)polyline animated: (BOOL)animated
{
[map setVisibleMapRect:[polyline boundingMapRect] edgePadding:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0) animated:animated];
}
Run Code Online (Sandbox Code Playgroud)