1

我正在尝试在 ios mapview 中添加一个圆形叠加层,在视图中确实加载了我添加了以下代码

CLLocationCoordinate2D center = CLLocationCoordinate2DMake( 53.809638, -1.554586 );
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:center radius:1000];
    circle.title = @"University of Leeds";
    [self.map addOverlay:circle];

还包括委托功能

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
    if ([overlay isKindOfClass:[MKCircle class]]) {
        MKCircleView *circleView = [[MKCircleView alloc] initWithCircle:(MKCircle*)overlay];
        circleView.fillColor = [[UIColor redColor] colorWithAlphaComponent:0.2];
        circleView.strokeColor = [[UIColor redColor] colorWithAlphaComponent:0.7];
        circleView.lineWidth = 2;
        return circleView;
    }

但它不工作,为什么?谢谢

4

2 回答 2

1

你的map委托人设置好了吗?如果您在 Interface Builder 中创建地图:检查您的地图是否正确连接。

(注意半径以米为单位)

于 2013-07-13T10:28:29.733 回答
0

您必须实现方法 GetOverlayRenderer,它应该创建一个 MKCircleRenderer。下面是 Xamarin 中的示例。

MKOverlayRenderer GetOverlayRenderer(MKMapView _nativeMapView, IMKOverlay overlay)
{
    if (overlay is MKCircle)
    {
        // Create a renderer if needed
        if (_circleRenderer == null)
        {
            _circleRenderer = new MKCircleRenderer(overlay as MKCircle);
            _circleRenderer.FillColor = UIColor.Red;
            _circleRenderer.Alpha = 0.3f;
        }
        return _circleRenderer;
    }
于 2017-04-19T17:36:54.207 回答