如何在不同的地图上叠加MKPolyline

时间:2014-10-16 01:35:37

标签: mkmapview mapkit mapbox mkpolyline

所以我按照惯例绘制了一个MKPolyline,用户更新了CLLocationCoordinates。当我再次退出并重新开始时,所有过去的点都会加载到mapview上以显示

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,但总是把它放在地图的顶层,即使它改变了吗?

1 个答案:

答案 0 :(得分:0)

而不是:

[_mapView addOverlay:_rasterOverlay];

你想:

[_mapView insertOverlay:_rasterOverlay belowOverlay:routeLine];

或类似的东西。叠加层有订单。