MKMapView避免空白图块[iOS 8+]

UnR*_*ewa 8 mkmapview ios swift

MKMapView某些缩放lvl中,所有地图图块都是空白的.我尝试使用最大变焦解决方案.现在我用它像这样:

 func mapView(mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
        userSpan = mapView.region.span
        if mapView.zoomLevel() > maxZoomLvl
        {
            mapView.setCenterCoordinate(mapView.centerCoordinate, zoomLevel: maxZoomLvl, animated: true)
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当用户缩放到最大值时,它会缩小动画.但是我需要一些解决方案,比如原生苹果地图应用程序:只需阻止最大缩放,无法缩放深度而无需缩放.预期结果:

  1. 在最大变焦和缩放反弹时避免使用平淡的瓷砖(就像现在使用当前解决方案一样)
  2. 如果没有瓷砖地图应该停止缩放(像本机苹果地图应用程序)或地图应该缩放最后可见的瓷砖(如谷歌地图应用程序)

Tar*_*agi 0

您可以使用mapView.camerawhich is 一个MKMapCamera对象来完成此操作。

从文档中 -

变量海拔高度:CLLocationDistance

距地面的高度,以米为单位。

只需要找到一个合适的高度值即可。从这个答案来看,有没有办法限制 MKMapView 最大缩放级别?

看来以下内容可能对您有帮助-

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
// enforce maximum zoom level
if (_mapView.camera.altitude < 120.00 && !_modifyingMap) {
    _modifyingMap = YES; // prevents strange infinite loop case

    _mapView.camera.altitude = 120.00;

    _modifyingMap = NO;
}
}
Run Code Online (Sandbox Code Playgroud)