如何在MKMapView上添加圆形区域

Ste*_*ett 2 mkmapview ios mkoverlay mkcircle

我试图在我的MKMapView上添加一个圆形区域,如下图所示我当前的位置.我可以使用注释来固定地图,但不知道如何使用半径显示这样的圆形区域并将其设置为阴影.

在此输入图像描述

Ste*_*ett 10

所以我想通了......

下面是我如何与代码一起完成的.

第1步: - 创建 MKCircle

MKCircle *circleOverlay = [MKCircle circleWithCenterCoordinate:zoomLocation radius:300];//radius in meters
Run Code Online (Sandbox Code Playgroud)

第2步: - 设置title并添加到地图叠加层

[circleOverlay setTitle:@"Circle1"];

[_mapView addOverlay:circleOverlay];
Run Code Online (Sandbox Code Playgroud)

第3步: - mapView:rendererForOverlay:在我的MapViewDelegate中实现该方法

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

    if ([overlay isKindOfClass:[MKCircle class]])
    {
        MKCircleRenderer* aRenderer = [[MKCircleRenderer alloc] initWithCircle:(MKCircle *)overlay];

        aRenderer.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
        aRenderer.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
        aRenderer.lineWidth = 3;
        return aRenderer;
    }else{
        return nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

就是这样!繁荣!希望它能帮助将来的某个人!不确定这是否是最好的方式,但它实现了我的目标!

编辑:确保将mapView的委托设置为self,否则将不会调用所需的委托方法.