2011-05-11 70 views
1

如何計算MKMapView的當前縮放比例?決定mapview的當前縮放比例

+0

檢查此問題http://stackoverflow.com/questions/1166444/mkmapview-zoom-and-region - 可能會幫助 – Vladimir 2011-05-11 15:26:44

+0

我實際上使用TroyBrant的MKMapView類別來獲取zoomLevel,但我也需要zoomScale。 – 2011-05-11 15:37:28

回答

0

使用下面的代碼:

#define MERCATOR_RADIUS 85445659.44705395 
#define MAX_GOOGLE_LEVELS 20 

- (double)getZoomLevel { 
    CLLocationDegrees longitudeDelta = self.mapView.region.span.longitudeDelta; 
    CGFloat mapWidthInPixels = self.mapView.bounds.size.width; 
    double zoomScale = longitudeDelta * MERCATOR_RADIUS * M_PI/(180.0 * mapWidthInPixels); 
    double zoomer = MAX_GOOGLE_LEVELS - log2(zoomScale); 
    if (zoomer < 0) zoomer = 0; 
    // zoomer = round(zoomer); 
    return zoomer; 
} 

getZoomLevel方法的返回值將是mapView屬性的當前縮放級別。