使用 MKUserTrackingModeFollowWithHeading 以编程方式更改缩放

dmz*_*zza 5 mapkit ios ios7

当地图视图处于 MKUserTrackingModeFollowWithHeading 模式时,我想缩小以包含最近的注释。

我试图像这样设置区域:

MKCoordinateRegion currentRegion = self.mapView.region;
currentRegion.span.latitudeDelta *= 4;
currentRegion.span.longitudeDelta *= 4;
[self.mapView setRegion:currentRegion];
Run Code Online (Sandbox Code Playgroud)

这会将地图缩小 4 倍,但在启用用户跟踪的情况下,iOS 会通过动画自动缩放回原始缩放级别。我无法让任何地区坚持下去。我假设 MapRect 会具有相同的行为,但我还没有尝试过。

有谁知道另一种方法来做到这一点?

根据有关 setUserTrackingMode 的文档:

如果地图被缩小,地图视图会自动放大用户的位置,从而有效地改变当前的可见区域。

所以我意识到这可能是不可能的。但是,用户可以通过捏来缩小,并且用户跟踪模式保持启用状态而无需放大。非常感谢任何创意。

inc*_*nus 1

使用内置跟踪模式时,您无法控制缩放行为。您可能想查看诸如MapBox iOS SDK之类的东西,它具有与 MapKit 相同的外观和行为,但允许您自定义此行为。