определить текущий масштаб для просмотра карты - PullRequest
1 голос
/ 11 мая 2011

Как рассчитать текущее масштабирование для MKMapView?

1 Ответ

0 голосов
/ 27 января 2014

Используйте следующий код:

#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.

...