如何将MKZoomScale转换为标准[0-20]缩放级别?

时间:2016-07-12 17:03:54

标签: ios mapkit

我想根据Google地图平台使用的标准[0-20]缩放级别在drawMapRect:zoomScale:inContext:内写一些绘图规则,但我似乎无法找到转换MKZoomScale的公式到那个规模。任何人?

1 个答案:

答案 0 :(得分:6)

在MKMapView上尝试此类别

@interface MKMapView (Additions)
- (double)zoomLevel;
@end


@implementation MKMapView (Additions)

- (double)zoomLevel {
    double totalTilesAtMaxZoom = MKMapSizeWorld.width / 256.0;
    NSInteger zoomLevelAtMaxZoom = log2(totalTilesAtMaxZoom);

    return MAX(0, zoomLevelAtMaxZoom + log2f(self.zoomScale));
}

@end