我MKMapView
正在使用MKTileOverlay
来自本地数据库的显示图块。它工作正常。
然后我用来MKDirections
获取两个坐标之间的方向并像这样绘制路线:
MKRoute *route = response.routes.lastObject;
MKPolyline *polyline = route.polyline;
// Draw path on overlay
[self.mapView insertOverlay:polyline aboveOverlay:self.tileOverlay];
但是当我放大看这条线时,它看起来没有平铺背景(通常从MKTileOverlay
(存储到self.tileOverlay
)加载)。我加入了图像以看得更好。
我还制作了这段代码来渲染叠加层:
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
if ([overlay isKindOfClass:[MKTileOverlay class]]) {
return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
}
else if ([overlay isKindOfClass:[MKPolyline class]]) {
MKPolylineRenderer *lineView = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
lineView.strokeColor = [UIColor greenColor];
lineView.lineWidth = 3;
return lineView;
}
return nil;
}
就像渲染线的“瓷砖”隐藏从MKTileOverlay
. 我如何:
- 指定我的MKPolyline
覆盖必须是透明的?
- 重新加载背景图块?
截图: