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

5

我希望在启动时将地图倾斜。(与用户使用两根手指向上或向下滚动相同)

使用Swift是否可以实现这一点?

2个回答

8

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


我已经添加了一个例子 :) - lchamp
完美的先生。谢谢! - Christian

7

Swift 4

这是一种更简便的方法:您可以设置距离、俯仰角和方向:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接