iPhone: получить выбранный уровень масштабирования карты Google

Нам нужно получить текущий выбранный уровень масштабирования MKMapView, когда пользователь увеличивает или уменьшает масштаб на Картах Google с помощью Mapkit.

Решение, которое мы попробовали, работает нормально на симуляторе, но не на реальном устройстве (iPhone 3GS с iOS 3.0.1). Нам нужно запустить его на iOS 3+ (включая iOS 4).

Ниже приведен код, который мы используем для получения уровня масштабирования: -

При увеличении / уменьшении масштаба Mapkit вызывает этого делегата: -

(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

который, в свою очередь, вызывает нашу функцию Mapzoomlevel: -

#define MERCATOR_RADIUS 85445659.44705395

-(float) Mapzoomlevel {
  return 21 - round(log2(_mapView.region.span.longitudeDelta *
    MERCATOR_RADIUS * M_PI / (180.0 * _mapView.bounds.size.width)));
}

Этот код был взят из (см. Первый комментарий, опубликованный в этом блоге, в примере получения уровня масштабирования): -

http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/


person Doc    schedule 21.01.2011    source источник


Ответы (1)


https://github.com/jdp-global/MKMapViewZoom

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{
    int zoomLevel = [mapView zoomLevel];

}
person johndpope    schedule 27.04.2011