我正在研究需要像iOS上的原始MapView一樣工作的Map應用程序。 我需要根據指南針的標題值旋轉mapview。我試過MTLocation的例子,我也試過this answer但是我的結果不好。根據指南針旋轉MapView
請參閱截圖。
當我按標題值地圖可旋轉,但你可以在屏幕上看到的瓷磚缺少旋轉的MapView。
我該如何解決這個顯示問題?
問候 - 法提赫
我正在研究需要像iOS上的原始MapView一樣工作的Map應用程序。 我需要根據指南針的標題值旋轉mapview。我試過MTLocation的例子,我也試過this answer但是我的結果不好。根據指南針旋轉MapView
請參閱截圖。
當我按標題值地圖可旋轉,但你可以在屏幕上看到的瓷磚缺少旋轉的MapView。
我該如何解決這個顯示問題?
問候 - 法提赫
海蘭,
我MTLocation的作者。感謝您順便使用它! 爲了這個工作你必須確保你的MKMapView是你的ViewController視圖的子視圖(而不是視圖本身)。然後你必須用一個簡單的Pytaghoras計算來增加你的mapView的框架:計算寬度和高度必須至少與對角線一樣大:sqrt(visibleWidth [320]^2 + visibleHeight [480-88]^2)= 506.
因此,這意味着
mapView = [[MKMapView alloc] initWithFrame:CGRectMake(-100,-100,520,520)];
希望,幫助,請考慮upvoting是否能解決問題。
您可以考慮使用一個更大的框架爲MKMapView
對象。它應該是一個正方形,每邊的長度等於設備對角線的長度。這種方法存在的問題是,用戶不會看到這個對象的區域,但是我們無論如何都會處理與該區域相關的註釋的視圖信息。其他屬性,如visibleMapRect
將是最沒有幫助的。
另一種替代方法是通過縮放旋轉對象MKMapView
來放大。但是這可能會使地圖模糊(未經測試)。您可以縮小地圖上顯示的區域,但可能會導致頻繁刷新。您可以看一下中間地帶,在地圖旋轉一定角度之前,您不會縮小。您還可以使用兩個視圖,其中一個視圖不在屏幕上並進行更新,以便它可以在一定量的旋轉後替換視圖,以使其感覺無縫。
我正努力在iPhone中製作我自己的地圖應用程序。我想讓我的地圖隨着用戶轉動而旋轉。我嘗試了iOS 5中可用的setUserTrackingMode
,但由於某種原因它不起作用。所以我決定接受MTLocation
框架here的幫助。
直到現在我已經完成了以下工作。
MapKit.h
和MTLocation.h
。Viewcontroller.h
,mapView
(我應該爲locateMeItem
定義屬性)的定義的屬性。ViewDidLoad
中,粘貼頁面末尾給出的代碼here。我得到了一些錯誤:
locateMe
按鈕時編程創建。headingEnabled
。myCustomSelector
沒有效果。self.toolbar
- 工具欄不是ViewController
的實例。我曾經在gist [dot] github [dot] com/1373050上試過了一個代碼,但是我也遇到類似的錯誤。
任何人都可以解釋一下這個的詳細過程。
嘿myell0w,我根據你的評論改變了我的代碼,它按預期工作。感謝您的快速響應。 – fyasar 2011-06-07 22:39:16
MTLocation現在在MKMapView上有一個類別方法來自動爲您調整大小: [self.mapView sizeToFitTrackingModeFollowWithHeading] – myell0w 2011-12-31 12:51:12
只需更改設備角度,地圖就會以正確的方式出現。 – Hari1251 2012-10-16 13:08:25