繁体   English   中英

如何向MKPolylineRenderer添加阴影或边缘?

[英]How can I add shadow or edge to MKPolylineRenderer?

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay{

if ([overlay isKindOfClass:[MulticolorPolylineSegment class]]) {
    MulticolorPolylineSegment *polyLine = (MulticolorPolylineSegment *)overlay;
    MKPolylineRenderer *aRenderer = [[MKPolylineRenderer alloc] initWithPolyline:polyLine];
    aRenderer.strokeColor = polyLine.color;
   // aRenderer.fillColor = [UIColor redColor];
    aRenderer.lineCap = kCGLineCapRound;
    aRenderer.lineJoin = kCGLineJoinBevel;
   // aRenderer.lineDashPhase = 66;
    aRenderer.miterLimit = 40;


    aRenderer.lineWidth = 6;



    return aRenderer;
}}

代码显示了在地图上运行的路径。我尝试了许多方法,但不知道如何解决。

您可以在自己的下方添加第二个MKPolyline。 然后将其渲染为阴影。

self.backgroundPolyline = [MKPolyline polylineWithCoordinates:coordinates 
                                                        count:count];
self.backgroundPolyline.title = BACKGROUND;
[self.mapView insertOverlay:self.backgroundPolyline 
               belowOverlay:self.routePolyline];

…

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
  if ([overlay isKindOfClass:[MKTileOverlay class]]) {
    return [[MKTileOverlayRenderer alloc] initWithOverlay:overlay];
  }else if ([overlay isKindOfClass:[MKPolyline class]]) {
    MKPolylineRenderer* aView = [[MKPolylineRenderer alloc] initWithPolyline:(MKPolyline*)overlay];
    if([overlay.title isEqualToString:BACKGROUND]) {
      aView.strokeColor = [[UIColor whiteColor] colorWithAlphaComponent:0.5];
      aView.lineWidth = 8;
    }else{
      aView.strokeColor = [[UIColor redColor] colorWithAlphaComponent:1];
      aView.lineWidth = 2;
    }
    return aView;
  }
  return nil;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM