地图框。 layerForAnnotation 未被调用。绘图形状
MapBox. layerForAnnotation not being called. Drawing shape
我正在尝试使用给定的坐标为用户绘制一条从 A 点到 B 点的路径。
添加注释后 LayerForAnnotation
没有被调用。我是 MapBox SDK 的新手,并不知道我做错了什么。我在 MapBox 文档中查找了有关添加形状的说明。我尝试更改为 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 方法上做了一个放置点,但它没有被调用。
我发现了我没有正确实现 RMMapViewDelegate 的问题。由于未正确实施,因此未被调用。
在头文件中添加并在代码中赋值即可。
mapView.delegate = self;
我正在尝试使用给定的坐标为用户绘制一条从 A 点到 B 点的路径。
添加注释后LayerForAnnotation
没有被调用。我是 MapBox SDK 的新手,并不知道我做错了什么。我在 MapBox 文档中查找了有关添加形状的说明。我尝试更改为 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 方法上做了一个放置点,但它没有被调用。
我发现了我没有正确实现 RMMapViewDelegate 的问题。由于未正确实施,因此未被调用。
在头文件中添加并在代码中赋值即可。
mapView.delegate = self;