为啥 MKCoordinateSpan 发生变化?
Posted
技术标签:
【中文标题】为啥 MKCoordinateSpan 发生变化?【英文标题】:Why MKCoordinateSpan changes?为什么 MKCoordinateSpan 发生变化? 【发布时间】:2010-03-29 10:43:20 【问题描述】:当我调试下面的代码时,我看到 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
【问题讨论】:
【参考方案1】:请注意,纬度和经度变化不同,因此方形 MapView 实际上会显示具有不同坐标跨度值的区域。这可能会导致您的地图视图区域的跨度(稍微?)与您设置的不同。
在参考 MKMapView 的区域属性时,有一些相关的短语:
只改变区域的中心坐标仍然可以 导致跨度隐式变化。 这是因为 由跨度变化表示的距离 在不同的纬度和经度 并且地图视图可能需要调整 考虑新的跨度 位置。
【讨论】:
感谢您的想法,我会检查是否是这种情况。【参考方案2】:具有相同纬度和经度跨度值的方形 MapView 几乎总是会经历上述跨度变化,因为当您从赤道移动到任一极点时,纵向弧长会发生显着变化。随着纬度接近+/-90,纵向弧长接近0。
此外,如果 MapView 区域不是方形的,相同的跨度值也会发生变化(因为跨度仅指当时实际可见的区域)。
【讨论】:
以上是关于为啥 MKCoordinateSpan 发生变化?的主要内容,如果未能解决你的问题,请参考以下文章