缩放MKMapView以适应Swift中的折线点

Ada*_*son 3 objective-c mkmapview mkpolyline swift

我一直在寻找一种解决方案来缩放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)

小智 7

此代码设置区域以显示整个折线,每边都有12.5%的填充.

        var regionRect = myPolyline.boundingMapRect


        var wPadding = regionRect.size.width * 0.25
        var hPadding = regionRect.size.height * 0.25

        //Add padding to the region
        regionRect.size.width += wPadding
        regionRect.size.height += hPadding

        //Center the region on the line
        regionRect.origin.x -= wPadding / 2
        regionRect.origin.y -= hPadding / 2

        myMapView.setRegion(MKCoordinateRegionForMapRect(regionRect), animated: true)
Run Code Online (Sandbox Code Playgroud)

如果你不想填充只是这样做

        var regionRect = myPolyline.boundingMapRect
        myMapView.setRegion(MKCoordinateRegionForMapRect(regionRect), animated: true)
Run Code Online (Sandbox Code Playgroud)