使用RMShape和RMMapView创建路径

时间:2013-02-15 02:13:33

标签: ios map path annotations mapbox

我使用mapbox sdk实现地图应用程序。我需要一起显示标记和路径,我谷歌周围但仍然没有得到这个主要想法。

到目前为止,我已经完成了......

- (RMMapLayer *)mapView:(RMMapView *)aMapView layerForAnnotation:(RMAnnotation *)annotation {

RMMarker *marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"pin-blue.png"]];
if ([annotation isKindOfClass:[MyAnnotation class]]) {
    if ([annotation.annotationType isEqualToString:@"marker"]) {
        [marker replaceUIImage:[self imageWithImage:[UIImage imageNamed:@"ic_marker.png"] scaledToSize:CGSizeMake(32, 48)]];
        [marker setAnchorPoint:CGPointMake(0.5, 1)];
        return marker;
    } else if ([annotation.annotationType isEqualToString:@"path"]) {
        path.lineWidth = 3;
        for (int i=0; i<[myCoordinateArray count]; i++) {
            NSLog(@"my coord count : %d", [myCoordinateArray count]);
            CLLocationCoordinate2D myLoc = [[myCoordinateArray objectAtIndex:i] coordinate];
            if (i>0) {
                [path addLineToCoordinate:myLoc];
            } else {
                [path moveToCoordinate:myLoc];
            }
        }
        [path closePath];
        return path;
    }
} 
return nil;

}

//添加注释

myPin = [[MyAnnotation alloc] init];
        [myPin setMapView:mapView];

        [myPin setCoordinate:myLatLng];
        [myPin setTitle:@"Marker"];

        myPin.annotationType = @"marker";
        [mapView addAnnotation:myPin];
        [mapView setNeedsDisplay];

myPath = [[MyAnnotation alloc] init];
        [myPath setCoordinate:myLatLng];
        myPath.annotationType = @"path";
        [mapView addAnnotation:myPath];

我做错了什么,或者我错过了什么?请帮忙。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,在您的第二个代码块中,您不需要拨打setMapView:setNeedsDisplay

第二,什么不起作用?代码看起来应该工作并在地图上显示一个点和一个路径。