我有一个使用MKTileOverlay
从本地数据库中显示瓦片的MKMapView
工作正常。
然后我使用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
覆盖层必须透明?
- 重新加载背景瓷砖?
截图: