MKMapCamera俯仰高度函数

时间:2014-01-14 22:42:05

标签: ios ios7 mkmapview mapkit

全部。我需要一些帮助。 我正在使用MapKit,当然我的相机可以上下移动(放大和缩小)。

我想在缩放时更改MKMapCamera音高。 因此,当相机处于低位时,音高会很大(~80),而当相机处于高音时,音高会很小(0)。

这是图片,显示了我想要做的事情:

enter image description here

我尝试创建功能,它会监控海拔高度并自动改变音高:

cam_timer = [NSTimer scheduledTimerWithTimeInterval: 0.05 target: self selector: @selector (test) userInfo:nil repeats: YES];

- (void) test
{
    [debug_lbl_1 setText: [NSString stringWithFormat:@"%f", map.region.span.latitudeDelta]];

        map.camera.pitch = 45; // changing pitch
}

但是当我在该功能中访问相机时它停止了移动。我的意思是......如果我试图从该功能访问相机,我无法移动,缩放或制作任何地图。

所以我的问题是:当高度(变焦等级)改变时,如何制作能改变音高的功能?拜托,我非常需要一些帮助=(

3 个答案:

答案 0 :(得分:1)

您可以使用MKMapCamera和UIView动画

在iOS 10及更高版本中实现此目的
mapView.camera = MKMapCamera(lookingAtCenter: pinLocation, fromDistance: 2000, pitch: 0, heading: 0)

let pinLocation = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)

let rotationCamera = MKMapCamera(lookingAtCenter: pinLocation, fromDistance: 2000, pitch: 75, heading: 180)

UIView.animate(withDuration: 10, delay: 0, options: .curveEaseInOut, animations: {
            self.mapView.camera = rotationCamera
        }, completion: nil)

答案 1 :(得分:0)

我会改变MKMapViewDelegate的方法mapView:regionDidChangeAnimated:中的音高,而不是使用计时器。

答案 2 :(得分:0)

也许尝试使用KVO来观察mapView.region的变化?