MKPolylineRenderer产生锯齿状,不相等的路径

Ale*_*ges 9 mapkit ios mkoverlay mkpolyline ios7

我正在使用iOS 7 MapKit API在地图上生成3D相机移动,该地图显示MKDirectionsRequest生成的路径.该路径由MKOverlayRenderer呈现,如下所示:

-(void)showRoute:(MKDirectionsResponse *)response
{
for (MKRoute *route in response.routes)
 {
    [self.map
     addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
 }
}

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay
{
 MKPolylineRenderer *renderer =
 [[MKPolylineRenderer alloc] initWithOverlay:overlay];
UIColor *mapOverlayColor = [UIColor colorWithRed:((float)22 / 255.0f) green:((float)126 / 255.0f) blue:((float)251 / 255.0f) alpha:0.8];
 renderer.strokeColor = mapOverlayColor;
 renderer.lineWidth = 13.0;
 return renderer;
}
Run Code Online (Sandbox Code Playgroud)

除了一个问题,它运作良好.当我使用MKMapCameras缩放或平移路径时(如果我只是以用户身份执行此操作),则路径呈锯齿状,如此屏幕截图所示:

屏幕截图

我测试看看切换到MKOverlayLevelAboveLabels是否有所作为但遗憾的是结果是相同的.

有没有人有关于如何改进渲染的建议?切换到测地路径是否会产生影响?如果是这样,我将如何实现此目的?

Tan*_*ain 2

一旦在地图上绘制了线,如果用户缩放,它可能不会重新渲染。或者,如果确实如此,它可能会在用户完成缩放之前重新渲染。在这种情况下,缩放后的宽度将不再反映您所需的宽度(以米为单位)。处理此问题的一种方法是覆盖regionDidChangeAnimated并删除覆盖层并将其添加回来。