我有一个MKMapView
并且我正在尝试旋转地图相机的标题以跟随用户的标题。我不想进行自动跟踪,因为它会强制缩放级别,这是我希望同时控制的。
问题是我发现如果提供 354 到 6 度之间的任何值,相机航向将恢复为 0。例如,当我将相机航向设置为 2 时,它会不断在 2 和 0 之间反弹,直到我将手机转到不同的航向。
我的解决方案是在此范围之间时将其锁定为 0,但这不是最佳选择。有没有人知道为什么会发生这种情况?标题更改时调用的方法如下所示:
- (void)setMapCameraPosition {
//354,6
if (self.heading <= 6 || self.heading >= 354) {
NSLog(@"****nulling heading. self.heading: %d camera.heading: %f", self.heading, self.mapView.camera.heading);
self.mapView.camera.heading = 0.0f;
}
else {
NSLog(@"changing heading. self.heading: %d camera.heading: %f", self.heading, self.mapView.camera.heading);
self.mapView.camera.heading = (double)self.heading;
}
}
如果我没有 if 语句并且只是将相机设置为我的标题,那么我的输出最终是:
self.heading: 357 camera.heading: -0.000000
self.heading: 357 camera.heading: -0.000000
self.heading: 357 camera.heading: -0.000000
因此,如果我给出一个接近北方的值,它会在一瞬间自动恢复到北方 - 使地图永远跳跃。
如何在地图不移除我想要的航向的情况下将航向设置为接近但实际上不是北向的程度?