我希望在启动时将地图倾斜。(与用户使用两根手指向上或向下滚动相同)
使用Swift是否可以实现这一点?
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
。
Swift 4
这是一种更简便的方法:您可以设置距离、俯仰角和方向:
let mapCamera = MKMapCamera(lookingAtCenter: userCoordinate, fromDistance: 10000, pitch: 65, heading: 0)
map.setCamera(mapCamera, animated: true)