在2D和3D mapview之间切换(pitchEnabled)

时间:2014-04-07 14:54:11

标签: ios objective-c 3d 2d mapkit

我有一个iOs地图应用程序,默认使用3D视图。因此,MKMapCamera在开头设置(音高值为45)。但是,我想让用户选择在他们更喜欢2D地图的情况下禁用3D地图。因此,为了在视图之间切换,我将改变相机的音高(2D中的0,3D中的45)并禁用/启用更改它({{1 }})。

由于某些原因,我在禁用音高后无法再启用3D视图,即在我设置setPitchEnabled = NO/YES之后,我无法将其更改为再次[_mapView setPitchEnabled:NO](尝试将其更改回YES后,YESpitchEnabled打印时将其值保持为NO因此我无法从2D回到3D。您是否知道会导致这种情况的原因?这非常令人困惑,因为我尝试以相同的方式启用和禁用轮换(NSLog[_mapView setRotationEnabled:NO]),在这种情况下它在这两种情况下完美配合。但是没有音高 - 在禁用音高之后我不再能够启用它。以下是在开头设置摄像头的功能(YES)和在模式之间切换的功能(setCamera)。

toggleViewMode

}

2 个答案:

答案 0 :(得分:2)

在别处找到答案。 你也必须设置一个摄像头。

以下是一个示例摄像头初始化:

MKMapCamera *newCamera = [[self.mapView camera] copy];
[newCamera setPitch:45.0];
[newCamera setHeading:90.0];
[newCamera setAltitude:500.0];
[self.mapView setCamera:newCamera animated:YES];

答案 1 :(得分:0)

请参阅Apple文档中的讨论。

[https://developer.apple.com/documentation/mapkit/mkmapview/1452277-camera#discussion][1]

您必须使用音高属性来在2D和3D地图视图之间切换