使用Swift以编程方式在Mapkit中倾斜地图

时间:2015-03-05 19:33:26

标签: ios swift mapkit

我想在启动时倾斜地图。 (与用户用2个手指向上或向下滚动时相同)

使用Swift可以吗?

2 个答案:

答案 0 :(得分:6)

MKMapView类参考:http://goo.gl/djHXPn

查看camera属性:

  

相机对象定义地图表面上方的一个点,用于查看地图。将相机应用于地图具有使地图具有类似3D的外观的效果。您可以使用相机旋转地图,使其方向与用户的标题相匹配,或应用俯仰角度来倾斜地图平面。

     

为此属性指定新摄像头会立即更新地图,而不会更改动画。如果要对摄像机位置的更改进行动画处理,请改用setCamera:animated:方法。

     

您不能将此属性设置为nil。要将地图恢复为平面外观,请应用俯仰角为0的摄像机,这样可以将摄像机直视到地图表面。

尝试创建和设置相机(动画与否)。

修改:

我试过自己。以下是如何使用它的示例:

let userCoordinate = CLLocationCoordinate2D(latitude: 58.592725, longitude: 16.185962)
let eyeCoordinate = CLLocationCoordinate2D(latitude: 58.571647, longitude: 16.234660)
let mapCamera = MKMapCamera(lookingAtCenterCoordinate: userCoordinate, fromEyeCoordinate: eyeCoordinate, eyeAltitude: 400.0)

let annotation = MKPointAnnotation()
annotation.setCoordinate(userCoordinate)

mapView.addAnnotation(annotation)

mapView.setCamera(mapCamera, animated: true)

根据您想要的位置和倾斜效果,您必须找到合适的eyeCoordinate

答案 1 :(得分:2)

Swift 4

这是一种更简单的方法:您可以设置距离,俯仰和航向:

let mapCamera = MKMapCamera(lookingAtCenter: userCoordinate, fromDistance: 10000, pitch: 65, heading: 0)
map.setCamera(mapCamera, animated: true)