地図に描画する点の配列がありますが、すでにデコードされています。
- (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のインスタンスであり、すでにデコードされたポイントのセットを表す配列をパスします。
[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」引数に渡そうとしましたが、例外がスローされました。
私は近くにいると思いますが、今何をすべきかわかりません。
助けてください!事前にどうもありがとうございました。
できました。
MapViewのデリゲートを設定していませんでした。 [map setDelegate:self]を追加するだけです。トリックをしました。
とにかくありがとうございました!。
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/ とSwift- http://rshankar.com/how-to-add-mapview-annotation-and-draw-polyline-in-Swift/