我有一个要在 map 上绘制的点数组,它已经解码了:
- (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;
}
map 上实际绘制的是 polylineView 吗?我也尝试过将 MKPolyline(从上面的方法)传递给最后一个方法的“
我想我已经接近了,但我不知道现在该做什么。
求助!非常感谢您。
最佳答案
完成。
这是一件非常愚蠢的事情,我没有为 MapView 设置委托(delegate)。只需添加 [map setDelegate:self];成功了。
还是谢谢你!
关于iphone - 如何在 MapView 上绘制 MKPolyline?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10911534/