当我调试下面的代码时,我发现mapkit更改了我提供的跨度。span2包含的数字与提供的数字不同。为什么会发生这种情况?
- (void) viewDidLoad
{
[super viewDidLoad];
CLLocationCoordinate2D loc;
loc.latitude = self.atm.lat;
loc.longitude = self.atm.lon;
MKCoordinateSpan span1 = MKCoordinateSpanMake(0.05f, 0.05f);
self.mapView.region = MKCoordinateRegionMake(loc, span1);
// at this point numbers are not 0.05 anymore
MKCoordinateSpan span2 = self.mapView.region.span;
// ... more code
}发布于 2010-03-29 18:55:48
请注意,纬度和经度的变化是不同的,因此square MapView实际上将显示具有不同跨度值的区域。这可能会导致您的mapview区域具有跨度(稍微?)与您设置的不同。
在引用MKMapView的region属性时,有一些相关的短语:
仅更改区域的中心坐标仍会导致范围隐式更改。这是因为跨度代表的距离在不同的纬度和经度发生变化,地图视图可能需要调整跨度以适应新的位置。
发布于 2010-03-31 18:44:29
具有相同纬度和经度跨度值的正方形MapView几乎总是会经历上述跨度的变化,因为当您从赤道移动到两极时,纵向弧长会发生显着变化。当纬度接近+/-90时,纵向弧长接近0。
但是,如果MapView区域不是正方形,则相同的跨度值也会发生变化(因为跨度仅指当时实际可见的区域)。
https://stackoverflow.com/questions/2537263
复制相似问题