1

所以我画了一条 MKPolyline,用户像往常一样更新了 CLLocationCoordinates。当我退出并重新开始时,所有过去的点都加载到地图视图上以显示

routeLine = [MKPolyline polylineWithCoordinates:clCoordinates count:numberOfSteps];
    [_mapView addOverlay:routeLine];

在 MKOverlayRenderer 方法中我有

if ([overlay isKindOfClass:[MKPolyline class]])
{
    MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithPolyline:overlay];



    renderer.strokeColor = [[UIColor whiteColor] colorWithAlphaComponent:0.7];
    renderer.lineWidth   = 3;

    return renderer;
}

这一切都是一种享受,但是当我更改地图类型时会出现问题

[self resetMapViewAndRasterOverlayDefaults];
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    _rasterOverlay = [[MBXRasterTileOverlay alloc] initWithMapID:@"jonobolitho.j834jdml"];
    _rasterOverlay.delegate = self;
    [_mapView addOverlay:_rasterOverlay];

注意,我有 resetMapViewAndRasterOverlayDefaults 辅助方法

// Reset the MKMapView to some reasonable defaults.
//
_mapView.mapType = MKMapTypeStandard;
_mapView.zoomEnabled = YES;

[_mapView removeAnnotations:_rasterOverlay.markers];
[_mapView removeOverlay:_rasterOverlay];
[_rasterOverlay invalidateAndCancel];

我正在使用 MBXMapKit 来显示地图。地图显示正确,但折线未显示在地图顶部。地图刚刚加载到我的折线(routeLine)的顶部。我知道这一点,因为在新地图的图块之间,我可以看到下面的 routeLine。

所以基本上有没有办法加载 MKPolyline 但始终将其保留在地图的顶层,即使它发生变化?

4

1 回答 1

0

代替:

[_mapView addOverlay:_rasterOverlay];

你要:

[_mapView insertOverlay:_rasterOverlay belowOverlay:routeLine];

或类似的东西。叠加层有顺序。

于 2014-10-17T17:24:31.943 回答