2

我正在尝试在我的 MKMapView 上添加一个圆形区域,如下图所示,用于我当前的位置。我可以用注释固定地图,但不知道如何让它显示像这样带有半径的圆形区域并对其进行阴影处理。

在此处输入图像描述

4

1 回答 1

11

所以我想通了...

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

第 1 步: - 创建MKCircle

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

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

[circleOverlay setTitle:@"Circle1"];

[_mapView addOverlay:circleOverlay];

第 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;
    }
}

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

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

于 2014-05-02T20:54:04.463 回答