首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在地图视图上绘制MKCircle

在地图视图上绘制MKCircle
EN

Stack Overflow用户
提问于 2011-06-27 04:42:42
回答 1查看 7.9K关注 0票数 2

我需要画一个圆来显示我所绘制的点周围的距离。

我应该在哪里实现这两行代码以使其工作?我试着把它放到viewWillAppear:中,但是圆圈没有出现。

代码语言:javascript
复制
[self addCircle:_coordinate];
[self addCircleWithRadius:5.5 addCircleWithCoordinate:_coordinate];

代码语言:javascript
复制
- (void)addCircle: (CLLocationCoordinate2D)coordinate
{
    // draw the radius circle for the marker

    double radius = 2000.0;
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:coordinate radius:radius];
    [circle setTitle:@"background"];
    [_mapView addOverlay:circle];

    MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:coordinate radius:radius];
    [circleLine setTitle:@"line"];
    [_mapView addOverlay:circleLine];
}

代码语言:javascript
复制
- (void)addCircleWithRadius:(double)radius addCircleWithCoordinate: (CLLocationCoordinate2D) coordinate
{

    MKCircle *circle = [MKCircle circleWithCenterCoordinate:coordinate radius:radius];
    [circle setTitle:@"background"];
    [_mapView addOverlay:circle];

    MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:coordinate radius:radius];
    [circleLine setTitle:@"line"];
    [_mapView addOverlay:circleLine];
}

代码语言:javascript
复制
- (void)sliderChanged:(UISlider*)sender
{
    [_mapView removeOverlays:[_mapView overlays]];

    double radius = (sender.value * 100);
    CLLocationCoordinate2D coordinate = self.coordinate;

    [self addCircleWithRadius:radius addCircleWithCoordinate:coordinate];
}

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay{
    MKCircle *circle = overlay;
    MKCircleView *circleView = [[[MKCircleView alloc] initWithCircle:overlay] autorelease];

    if ([circle.title isEqualToString:@"background"])
    {
        //circleView.fillColor = UIColorFromRGB(0x598DD3);
        circleView.alpha = 0.25;
    }
    else
    {
        //circleView.strokeColor = UIColorFromRGB(0x5C8AC7);
        circleView.lineWidth = 2.0;
    }

    return circleView;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-29 21:45:48

虽然您可以尝试viewDidAppear而不是viewWillAppear,但我认为它应该已经在这方面起作用了。我认为您有其他错误,您应该通过调试器找到它。查查通常的嫌疑人:

  • 设置填充颜色。使其不透明,obvious.
  • _mapView可能在运行时为零或僵尸。(或者不在xib中映射)
  • 的坐标或半径可能与您预期的不同。检查debugger.
  • Everything中的实际坐标值可能是正确的,除非坐标不在地图的缩放区域。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6488646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档