MapBox。 layerForAnnotation未被调用。绘图形状

时间:2015-03-30 10:12:59

标签: ios ios7 mapbox google-direction

我正在尝试使用给定的坐标为用户绘制从A点到B点的路径。

添加注释后,

LayerForAnnotation未被调用。我是使用MapBox SDK的新手,并不知道我做错了什么。我查找了有关在MapBox文档中添加Shapes的说明。我尝试过更改为RMPointAnnotation但是没有用,并且根据这个原因不应该这样:Issue GitHub RMAnnotation.

我已经检查过是否有关于此委托的实现的任何信息,但是在MapBox文档页面上找不到很多。我从这里下载了演示注释的示例项目:Weekend Picks sample.

这是我正在使用的代码:

 - (void) makeRoutingAnnotations
{
    // Translate updated path with new coordinates.
    NSInteger numberOfSteps = _path.count;

    NSMutableArray *coordinates = [[NSMutableArray alloc] init];
    for (NSInteger index = 0; index < numberOfSteps; ++index) {
        CLLocation *location = [_path objectAtIndex:index];
        [coordinates addObject:location];
    }
    RMAnnotation *startAnnotation = [[RMAnnotation alloc] initWithMapView:mapView coordinate:((CLLocation *)[coordinates objectAtIndex:0]).coordinate andTitle:@"Start"];

    startAnnotation.userInfo = coordinates;
    [startAnnotation setBoundingBoxFromLocations:coordinates];

    [mapView addAnnotation:startAnnotation];

}

   - (RMMapLayer *)mapView:(RMMapView *)mView layerForAnnotation:(RMAnnotation *)annotation
{
    if (annotation.isUserLocationAnnotation)
        return nil;

    RMShape *shape = [[RMShape alloc] initWithView:mView];

    // set line color and width
    shape.lineColor = [UIColor colorWithRed:0.224 green:0.671 blue:0.780 alpha:1.000];
    shape.lineWidth = 8.0;

    for (CLLocation *location in (NSArray *)annotation.userInfo)
        [shape addLineToCoordinate:location.coordinate];

    return shape;

}

我能错过什么?我在layerForAnnotation方法上做了一个droppoint,但它没有被调用。

1 个答案:

答案 0 :(得分:2)

我发现问题我没有正确实现RMMapViewDelegate。由于没有正确实施,因此未被调用。

将它添加到头文件并将其分配给代码的方法。

mapView.delegate = self;