iPhone:获取谷歌地图的选定缩放级别

当用户使用Mapkit在Google地图上进行放大或缩小时,我们需要获取当前选定的MKMapView的缩放级别。

我们尝试过的解决scheme在模拟器上运行良好,但在真实设备(具有iOS 3.0.1的iPhone 3GS)上运行得不错。 我们需要运行在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/

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

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