我需要获得某种缩放因子,告诉我地图缩放了多少(每当区域发生变化时).
我的第一个想法是使用跨度的delta纬度或经度值.我将跟踪"旧"值,然后在地图区域更改时更新值,并将比率与旧值进行比较.
我正在使用以下委托方法:
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
// Get the new value
CLLocationDegrees newdlat = mapView.region.span.latitudeDelta;
// Find the zoom ratio (use longitude instead?)
CGFloat zoomRatio = newdlat / olddlat;
// Update the old value (defined elsewhere)
olddlat = newdlat;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我没有使用经度delta,因为我认为它会按比例缩放到纬度,这将产生相同的比率(这是错误的吗?).
问题是当我在滚动地图时检查经度和纬度增量的值(没有缩放)时,值会略有变化.如果地图没有缩放,跨度值是否应该保持不变?也许我误会了什么.
由于这种微小的变化,我担心我的缩放比率不够准确无法依赖(最终我将使用它来缩放地图上的注释图像).
我的主要问题是这是一个很好的方法,还是有一种更简单的方式可以忽略?
谢谢你的帮助.