2012-06-12 84 views
0

當我使用MKMapView :: mapRectThatFits時,我得到奇怪的不準確。如果我傳入的MKMapRect比更高的更寬,我希望mapRectThatFits返回一個具有相同水平跨度的新MapRect,但增加了垂直跨度以適應mapView,但是我注意到MKMapView增加了水平跨度以及垂直。任何人都可以解釋這些不準確與MKMapView :: mapRectThatFits

enter image description here

這種不準確性似乎增加作爲維度座標區域增加。在幾百米處,精確度可以忽略不計,但在1.5公里處,差值爲0.0006,這是顯着的。

我已經嘗試使用mapRectThatFits:邊緣填充設置爲零和regionThatFits,但都導致相同的不準確。

MKCoordinateRegion combinedRegion = self.models.locationModelsCoordinator.coordinateRegion; 
NSLog(@"Before %f", combinedRegion.center.longitude - (combinedRegion.span.longitudeDelta * 0.5)); // Logs -0.103473 

MKMapRect combinedRect = [ELMapKitUtils mapRectForCoordinateRegion:combinedRegion]; 
// If I convert combinedRect back to an MKCoordinateRegion here I can verify it is unaltered, so there is no issue with my conversion code. 
MKMapRect focusRect = [self.mapView mapRectThatFits:combinedRect]; 

MKCoordinateRegion regionFittedToMapView = MKCoordinateRegionForMapRect(focusRect); 
NSLog(@"After %f", regionFittedToMapView.center.longitude - (regionFittedToMapView.span.longitudeDelta * 0.5)); // Logs -0.104107 
+0

我在iOS 5下看到了這一點,但在iOS 6下,它與新的Apple地圖一起消失了。 – Klaas

+1

我認爲@ CyrilGodefroy的回答是正確的。它不再是一個問題,因爲它們使用的矢量不需要強制以特定的大小顯示。現在,您只需擔心Apple Map與狗狗繪製的地圖差不多。 – Undistraction

回答

1

這是因爲你有位圖圖塊。今天的MapKit適應了位圖拼貼的全部尺寸,因此顯示出水平更寬的區域。如果MapKit確實使用了基於矢量的圖塊,它可能會在未來的版本中執行,如昨天在Keynote中展示的那樣,它不會受到位圖圖塊問題的限制。

今天MapKit沒有解決方法。我沒有看bing Maps或Routeme。你應該。

相關問題