如何在MapView上绘制MKPolyline?

我在地图上绘制了一系列点,它已经被解码了:

- (void) drawRoute:(NSArray *) path { NSInteger numberOfSteps = path.count; CLLocationCoordinate2D coordinates[numberOfSteps]; for (NSInteger index = 0; index < numberOfSteps; index++) { CLLocation *location = [path objectAtIndex:index]; CLLocationCoordinate2D coordinate = location.coordinate; coordinates[index] = coordinate; } MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; [map addOverlay:polyLine]; } 

其中“map”是MKMapView的一个实例,path代表已经解码的一组点。

我认为,与行[map addOverlay:polyLine]; 它会被绘制。 我在一些页面中看到了这种方法:

 - (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay]; polylineView.strokeColor = [UIColor redColor]; polylineView.lineWidth = 1.0; return polylineView; } 

polylineView是在地图上实际绘制的吗? 我也试过把MKPolyline(从上面的方法)传递给这个最后一个方法的“<MKOverlay> overlay”参数,但是抛出一个exception。

我想我很近,但是现在我不知道该怎么做。

请帮忙! 非常感谢你提前。

完成。

是一个非常愚蠢的事情,我没有设置MapView的委托。 只需添加[map setDelegate:self]; 做的伎俩。

不pipe怎样,谢谢你!。

只需使用坐标创buildMKPolyline并将该多边形添加到地图视图即可。

 MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; [map addOverlay:polyLine]; 

您将在这里find关于如何在某些坐标上绘制折线的教程。 编辑:该url似乎不再有效。 你可以在这里find这个URL的存档版本。

 MKPolyline *polyline = [MKPolyline polylineWithCoordinates:coordinates count:self.allPins.count]; [self.mapView addOverlay:polyline]; 

检查这个http://pinkstone.co.uk/how-to-draw-an-mkpolyline-on-a-map-view/和快速http://rshankar.com/how-to-add-mapview-annotation -和-拉折线式-斯威夫特/