iPhone: получить выбранный уровень масштабирования карты Google - PullRequest
2 голосов
/ 21 января 2011

Нам нужно получить текущий выбранный уровень масштабирования MKMapView, когда пользователь увеличивает или уменьшает масштаб в Google Maps с помощью 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/

1 Ответ

5 голосов
/ 27 апреля 2011

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

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...