任何人都可以使用MKMapView :: mapRectThatFits解释这些不准确之处

时间:2012-06-12 15:45:04

标签: ios ios5 mkmapview mapkit

使用MKMapView :: mapRectThatFits时,我得到了奇怪的不准确之处。如果我传入比它更宽的MKMapRect,我希望mapRectThatFits返回一个具有相同水平跨度的新MapRect,但是增加垂直跨度以使其适合mapView,但是我注意到MKMapView添加到水平跨度以及垂直。

enter image description here

随着坐标区域尺寸的增加,这种不准确性似乎会增加。在几百米处,精度可以忽略不计,但在1.5公里处,差异为0.0006,这是显着的。

我尝试过使用mapRectThatFits:edgePadding,边缘填充设置为零,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

1 个答案:

答案 0 :(得分:1)

这是因为你有位图图块。今天的MapKit适应了位图瓷砖的全尺寸,因此显示了水平更宽的区域。如果MapKit确实使用了基于矢量的切片,它可能在将来的版本中使用,正如昨天在Keynote中所展示的那样,它不会受到该位图切片问题的限制。

今天MapKit没有解决方法。我没看过bing Maps或Routeme。你应该。