我有一个iOs地图应用程序,默认使用3D视图。因此,MKMapCamera
在开头设置(音高值为45
)。但是,我想让用户选择在他们更喜欢2D地图的情况下禁用3D地图。因此,为了在视图之间切换,我将改变相机的音高(2D中的0
,3D中的45
)并禁用/启用更改它({{1 }})。
由于某些原因,我在禁用音高后无法再启用3D视图,即在我设置setPitchEnabled = NO/YES
之后,我无法将其更改为再次[_mapView setPitchEnabled:NO]
(尝试将其更改回YES
后,YES
在pitchEnabled
打印时将其值保持为NO
。 因此我无法从2D回到3D。您是否知道会导致这种情况的原因?这非常令人困惑,因为我尝试以相同的方式启用和禁用轮换(NSLog
或[_mapView setRotationEnabled:NO]
),在这种情况下它在这两种情况下完美配合。但是没有音高 - 在禁用音高之后我不再能够启用它。以下是在开头设置摄像头的功能(YES
)和在模式之间切换的功能(setCamera
)。
toggleViewMode
}
答案 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地图视图之间切换