English 中文(简体)
绘制地图图
原标题:Drawing a MKCircle on a map view

我需要 circle一个圈子,以显示我所策划的距离。

我在什么地方执行这两条法典,使之发挥作用? 我尝试将其列入<条码>viewWillAppear:,但圈子没有出现。

[self addCircle:_coordinate];
[self addCircleWithRadius:5.5 addCircleWithCoordinate:_coordinate];

- (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];
}

- (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];
}

- (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;
}
最佳回答

虽然你可以尝试<代码>viewDidAppear,而不是viewWillAppear,但我认为它已经在这方面开展工作。 我认为,你有别的错误,你应该与一位gger者一道找到。 检查通常嫌疑人:

  • Set the fill color. Make it opaque and obvious.
  • _mapView might be nil or zombied during runtime. (or not mapped in your xib)
  • The coordinates or radius may be different than you expect. Check the actual coordinate values in your debugger.
  • Everything may be correct except that the coordinates are not located in your map s zoomed area.
问题回答

暂无回答




相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签