我正在尝试使用给定的坐标为用户绘制从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,但它没有被调用。
答案 0 :(得分:2)
我发现问题我没有正确实现RMMapViewDelegate。由于没有正确实施,因此未被调用。
将它添加到头文件并将其分配给代码的方法。
mapView.delegate = self;