iOS 7では、MKDirectionsRequest
を使用してルートを取得し表示することができます。ここで
は、別のマップアイテムに現在の場所から指示を表示するためのいくつかのサンプルコードです:
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
[request setSource:[MKMapItem mapItemForCurrentLocation]];
[request setDestination:myMapItem];
[request setTransportType:MKDirectionsTransportTypeAny]; // This can be limited to automobile and walking directions.
[request setRequestsAlternateRoutes:YES]; // Gives you several route options.
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
if (!error) {
for (MKRoute *route in [response routes]) {
[myMapView addOverlay:[route polyline] level:MKOverlayLevelAboveRoads]; // Draws the route above roads, but below labels.
// You can also get turn-by-turn steps, distance, advisory notices, ETA, etc by accessing various route properties.
}
}
}];
あなたはiOSの7に新しいしている場合は、表示されるすべてのオーバーレイのためmapView:rendererForOverlay:
メソッドを実装する必要があります。次のようなものがあります。
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolyline class]]) {
MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
[renderer setStrokeColor:[UIColor blueColor]];
[renderer setLineWidth:5.0];
return renderer;
}
return nil;
}
そのデリゲートは 'MKMapItem'は座標スウィフトバージョンコアデータ。これらの座標を 'MKMapItem'に戻すにはどうしたらいいですか? – Adrian
@AdrianB遅れて申し訳ありませんが、座標からインスタンス化できるMKPlacemarkを使用してMKMapItemを初期化できます。 – Kamaros