Sjo*_*ors 5 mkmapview ios mkmapcamera
我找到了三种使用 MKMapCamera 的方法,我想知道哪一种是最值得推荐的。我的目标是跟随用户,我想在每次位置更新时更新相机(所以每秒)。
1.
MKMapCamera *newCamera = [MKMapCamera camera];
[newCamera setCenterCoordinate:newCoordinate];
[newCamera setPitch:60];
[newCamera setHeading:heading];
[newCamera setAltitude:eyeAltitude];
[mapView setCamera:newCamera];
Run Code Online (Sandbox Code Playgroud)
2.
MKMapCamera *newCamera = [MKMapCamera cameraLookingAtCenterCoordinate:newCoordinate
fromEyeCoordinate:oldCoordinate
eyeAltitude:eyeAltitude];
[newCamera setPitch:pitch];
[mapView setCamera:newCamera];
Run Code Online (Sandbox Code Playgroud)
3.
MKMapCamera *oldCamera = mapView.camera;
[oldCamera setCenterCoordinate:newCoordinate];
[oldCamera setPitch:60];
[oldCamera setHeading:heading];
[oldCamera setAltitude:eyeAltitude];
Run Code Online (Sandbox Code Playgroud)
Memory wise 似乎 nr 3 是最体面的,还是单例类?在大多数示例中,它们使用 nr1。
对于 nr3,我无法使动画正常工作。
谢谢!
小智 4
使用 MKMapCamera,您可以设置地图的方向,而不会干扰视图上的变换,甚至不会检测 user\xe2\x80\x99s 标题。
\n\nMKMapCamera *mapCamera = [[self.mvMap camera] copy];\n[mapCamera setHeading:headingDegrees]; \n[self.mvMap setCamera:mapCamera animated:YES];\nRun Code Online (Sandbox Code Playgroud)\n\n如果您不\xe2\x80\x99 不需要动画,您可以在现有相机上设置新标题:
\n\n[self.mapView.camera setHeading:heading];\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |