我正在尝试在MKMapView上添加一个圆形区域,如下图所示,以获取当前位置。我可以用注释固定地图,但是不知道如何显示带有半径的圆形区域并将其着色。

最佳答案

所以我想通了...

以下是我与代码一起做的方法。

步骤1:-创建MKCircle

MKCircle *circleOverlay = [MKCircle circleWithCenterCoordinate:zoomLocation radius:300];//radius in meters

第2步:-设置title并添加到地图叠加层
[circleOverlay setTitle:@"Circle1"];

[_mapView addOverlay:circleOverlay];

步骤3:-在我的MapViewDelegate中实现mapView:rendererForOverlay:方法
-(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;
    }
}

就是这样!繁荣!希望它对将来的人有所帮助!不知道这是否是最好的方法,但是可以实现我的目标!

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

10-08 06:58