Cocoa touch 根据指南针旋转地图视图

Cocoa touch 根据指南针旋转地图视图,cocoa-touch,ios4,mkmapview,Cocoa Touch,Ios4,Mkmapview,我正在开发地图应用程序,它需要像iOS上的原始地图视图一样工作。 我需要根据指南针航向值旋转地图视图。我也试过,我也试过,但效果不好 请看屏幕截图 当我根据标题值旋转mapview时,地图正在旋转,但正如你们在屏幕上看到的,瓷砖丢失了 如何解决此显示问题 问候 -法提赫 >p>可以考虑使用更大的框架来满足 MKMMAVIEWS/COD>对象。它应该是一个正方形,每边的长度等于设备对角线的长度。这种方法的问题在于,用户不会看到该对象的某些区域,但我们会处理与该区域相关的注释的视图等信息。其他属

我正在开发地图应用程序,它需要像iOS上的原始地图视图一样工作。 我需要根据指南针航向值旋转地图视图。我也试过,我也试过,但效果不好

请看屏幕截图

当我根据标题值旋转mapview时,地图正在旋转,但正如你们在屏幕上看到的,瓷砖丢失了

如何解决此显示问题

问候 -法提赫

>p>可以考虑使用更大的框架来满足<代码> MKMMAVIEWS/COD>对象。它应该是一个正方形,每边的长度等于设备对角线的长度。这种方法的问题在于,用户不会看到该对象的某些区域,但我们会处理与该区域相关的注释的视图等信息。其他属性(如
visibleMapRect
)的帮助最小

  • 另一种选择是通过缩放旋转时的
    MKMapView
    对象来放大。但这可能会使地图模糊(未经测试)。您可以缩小地图中显示的区域,但这可能会导致频繁刷新。你可以看到一个中间地带,在地图旋转一定角度之前,你不会缩小。您还可以查看使用两个视图的情况,其中一个视图处于屏幕外并已更新,以便在经过一定程度的旋转后可以替换视图,使其感觉无缝

  • Hy

    我是MTLocation的作者。谢谢你顺便用一下! 为此,必须确保MKMapView是ViewController视图(而不是视图本身)的子视图。然后,您必须使用简单的Pytaghoras计算增加地图视图的边框:宽度和高度必须至少与对角线一样大:sqrt(visibleWidth[320]^2+visibleHeight[480-88]^2)=506

    这意味着

     mapView = [[MKMapView alloc] initWithFrame:CGRectMake(-100,-100,520,520)];
    

    希望有帮助,如果你解决了问题,请考虑一下投票。

    < P>我正致力于在iPhone中制作自己的地图应用程序。我希望我的地图随着用户的转动而旋转。我尝试了iOS 5中可用的
    setUserTrackingMode
    ,但由于某些原因,它不起作用。所以我决定借助
    MTLocation
    framework

    到目前为止,我已经做了以下工作

  • 创建了一个新项目并复制了其中的所有.m和.h文件
  • 导入
    MapKit.h
    MTLocation.h
  • Viewcontroller.h
    中,为
    mapView
    定义了属性(我是否应该为
    locateMeItem
    定义属性)
  • ViewDidLoad
    中,粘贴页面末尾给出的代码
  • 我有几个错误:

  • 以编程方式创建时,无法看到
    locateMe
    按钮
  • 未定义的属性
    headingEnabled
  • myCustomSelector
    无效
  • self.toolbar
    -工具栏不是
    ViewController
    的实例
  • 我也在gist[dot]github[dot]com/1373050上尝试了一段代码,但我也遇到了类似的错误


    有人能解释一下这方面的详细过程吗。

    嘿,myell0w,我根据你的评论更改了我的代码,它按预期工作。感谢您的快速响应。MTLocation现在在MKMapView上有一个category方法,可以自动为您调整大小:[self.mapView SizeToFittracking Mode FollowWithHeading]只需更改设备角度,然后地图会以正确的方式出现。@myell0w我正在做类似的工作,有与上面相同的问题。我的地图是iPad大小的,目前为768宽x 863高,但我不明白计算方法。你能帮我吗?