从地图中删除mkoverlay

时间:2010-09-22 05:40:24

标签: iphone objective-c xcode mkoverlay

我将自定义绘图的叠加(MKOverlay)添加到Mapview。叠加显示很好,我可以看到图纸。但是,当我删除那个叠加层时,它不能完全去除图形的某些部分仍然存在。是什么原因?即时通讯使用removeOverlay:用于删除该叠加层。任何帮助表示赞赏..

3 个答案:

答案 0 :(得分:4)

不知道你们是否还在想这个,但以下内容对我有用:

// assuming you have mapView and overlay defined somewhere
MKOverlayView *overlayView = [mapView viewForOverlay:overlay];
overlayView.hidden = YES;
[overlayView setNeedsDisplay];
[mapView removeOverlay:overlay];

希望这有帮助!

答案 1 :(得分:2)

您可以删除地图中的所有叠加层。它工作得很好

将此功能添加到yourviewController:

-(void)deleteMapOverlays
{

    for (id<MKOverlay> overlay in mapView.overlays)
    {
        [self.mapView removeOverlay:overlay];
    }

}

使用:

 [self deleteMapOverlays];

答案 2 :(得分:0)

位置更新后,我一直在MKCircle()顶部获得多个覆盖。这是@ErhanDemirci答案的Swift 4答案,之后添加了我的MKCircle。步骤2是答案的Swift 4版本。

// 1. add the MKCircle
let circle = MKCircle(center: location.coordinate, radius: whateverRadius)

// 2. loop through the map view's overlays then remove it. The overlay is the MKCircle
for overlay in mapView.overlays {
    mapView.remove(overlay)
}

// 3. add your the MKCircle to the mapView
mapView.add(circle)