8

我有一个正在考虑旋转的 MKMapView,以便更方便地向我的用户显示一系列注释。

到目前为止,我正计划使用 CGAffineTransform 简单地旋转整个视图,但我想知道是否有人对 MKMapView 旋转有任何经验。

  • 在添加轮换时,您是否遇到过任何陷阱或“陷阱”?
  • 有没有更简单的方法来旋转地图视图?
  • 如果我有一个叠加层,convertCoordinate:toPointToView: 方法是否仍然以相同的方式工作?我会假设我必须对我的叠加应用相同的变换以使点对齐,但也许该方法比这更聪明。

如果有什么你认为可以帮助我的事情,我很想听听。


编辑:经过大量实验,我相信我将使用可以旋转和覆盖自己的静态地图,但是,我仍然会对有关 MKMapView 旋转的任何信息感兴趣。

4

4 回答 4

8

我还计划在我的应用程序中使用旋转的 MKMapView。要显示未旋转的注释,我使用以下代码:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
    ...
    annotationView.transform = GAffineTransformInvert(mapView.transform);
    ...
}

它似乎对我有用。

于 2009-10-14T11:03:04.117 回答
6

很抱歉恢复一个已完成的主题,但还有一个“问题”:如果您将地图视图的大小调整到足以旋转以使其始终覆盖整个屏幕,那么您最终会从左下角裁剪“Google”徽标. 这明显违反了您使用 MapKit 的许可,并可能成为应用被拒绝的理由。在实践中,在顶部添加一个静态版本的谷歌标志作为 UIImageView 似乎被各方认为是可以接受的。

于 2010-11-25T14:06:19.590 回答
5

这是使用 iPhone ccelerometer 进行 MKMapView 旋转的新示例。希望它会有所帮助。

于 2009-11-17T23:31:30.310 回答
1

我开始使用 MKMapView 旋转并发现:

  • 当您将 CGAffineTransform 应用于地图视图时,方法 convertCoordinate:toPointToView: 的工作方式相同。
  • 注释随视图旋转,包括注释文本。
  • 适合的区域似乎仍然适合屏幕上的区域,它不适合地图视图(我将地图视图设置为大于其父视图,因此它可以旋转而不显示后面的视图)。
于 2009-10-06T17:21:54.970 回答