MKMapView旋转体验

问题描述:

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

截至目前,我正在计划只用CGAffineTransform旋转整个视图,但我想知道是否有人有任何MKMapView旋转的经验。

  • 是否有任何缺陷或你添加旋转时遇到“陷阱”?
  • 有没有更简单的方法来旋转mapview?
  • 如果我有一个覆盖将convertCoordinate:toPointToView:方法仍然以同样的方式工作?我假设我必须将相同的变换应用于覆盖点以排列点,但也许该方法比这更明智。

如果有什么你认为可以帮忙的,我很乐意听到这一切。


编辑:多次实验后,我相信,我会用我可以旋转和叠加自己的静态地图,但是,我仍然有兴趣有关的MKMapView旋转的任何信息。

这是一个新样本MKMapView rotation with iPhone ccelerometer。希望它会有所帮助。

+0

感谢您的代码,我会看看它。 – jessecurry

我开始用的MKMapView轮换工作,并已发现:

  • 当您将CGAffineTransform到地图查看方法convertCoordinate:toPointToView:工作原理相同。
  • 注解随视图旋转,包括注释文本。
  • 适合区域的区域仍然适合屏幕上的区域,它不适合地图视图(我使地图视图大于其父视图,因此它可以旋转而不显示视图)。

我也打算在我的应用程序中使用旋转的MKMapView。为了显示不旋转我使用下面的代码注释:

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

这似乎为我工作。

+0

感谢您的信息,我认为annotationView变换只影响旋转?那个位置是一些其他变换的功能? – jessecurry

对不起,以恢复完成的主题,但又有一个'陷阱':如果您将地图视图的大小设置为足够大以便旋转,以便始终覆盖整个屏幕,那么最终会裁剪'Google'徽标从左下角。这与您使用MapKit的许可明确相反,可能会导致应用程序拒绝。实际上,在上面添加静态版本的Google徽标作为UIImageView似乎被所有各方认为是可以接受的。

+1

好点。您实际上可以从MKMapView中检索“Google”徽标。 MKMapView有2个子视图,其中一个是包含徽标的UIImageView。我创建了自己的UIImageView并将其图像属性设置为与MKMapView中的图像属性相同,并且可以工作。 Google徽标显示不变。 – Fraggle