【问题标题】: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
}

【问题讨论】:

    标签: iphone mapkit core-location


    【解决方案1】:

    请注意,纬度和经度变化不同,因此方形 MapView 实际上会显示具有不同坐标跨度值的区域。这可能会导致您的地图视图区域的跨度(稍微?)与您设置的不同。

    在参考 MKMapView 的区域属性时,有一些相关的短语:

    只改变区域的中心坐标仍然可以 导致跨度隐式变化。 这是因为 由跨度变化表示的距离 在不同的纬度和经度 并且地图视图可能需要调整 考虑新的跨度 位置。

    【讨论】:

    • 感谢您的想法,我会检查是否是这种情况。
    【解决方案2】:

    具有相同纬度和经度跨度值的方形 MapView 几乎总是会经历上述跨度变化,因为当您从赤道移动到任一极点时,纵向弧长会发生显着变化。随着纬度接近+/-90,纵向弧长接近0。

    此外,如果 MapView 区域不是方形的,相同的跨度值也会发生变化(因为跨度仅指当时实际可见的区域)。

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 2018-12-24
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      相关资源
      最近更新 更多