トラックのルート探索
HERE SDK のトラックルーティング機能を使用すると、トラックや商用車で走行できるルートを計算できます。 商用車の輸送ルートについては、通常、異なる規制があります。 たとえば、政府によっては、可燃性の物質を運ぶトラックが住宅地を移動するのを制限する法律が制定されている場合があります。 トラックルーティング機能を使用すると、これらの制限に特に準拠したルート計算を開始できます。
オフライントラックルーティングを実行するに NMAMapDataGroupTruckAttributes
は、以下の例のように、オプションのデータグループをダウンロードまたはプリフェッチする必要があります。 データグループの詳細 については、「マップパッケージのダウンロード」を参照してください。
// Select additional data group needed for offline truck routing
[[NMAMapLoader sharedMapLoader] selectDataGroup:NMAMapDataGroupTruckAttributes];
// Whether download map package(s)
[[NMAMapLoader sharedMapLoader] installMapPackages:@[package]];
// Or prefetch map data
[[NMAMapDataPrefetcher sharedMapDataPrefetcher] fetchMapDataForRoute:route radius:radius error:&error];
トラックルーティングと NMARToutingMode クラス
NMARoutingMode
このクラスには、ルート計算を実行するために設定するトラック固有のプロパティが含まれています。 NMATransportModeTruck
計算を開始する前に、ルート輸送モードをに設定し、必要に応じて次のルートプロパティを設定する必要があります。 - トラックトレーラーの数
- トラック高さ
- トラックの長さ
- トラックの幅
- 最大許容トラック重量
- トラックが走行できないトンネルのカテゴリ
- アクスルあたりのトラック重量
- トラックで輸送される危険物
- 難しいカーブ
NMARoutingTypeFastest
されます。 他のルーティングタイプはサポートされていません。 ルート計算の例
- 前のルーティング例と同様に、
NMACoreRouter
を作成してからNSArray
を作成し、その経由地を設定します。 - トランスポート
NMARoutingMode
モードを初期化NMATransportModeTruck
してに設定します。NMARoutingMode* routingMode = [[NMARoutingMode alloc] initWithRoutingType:NMARoutingTypeFastest transportMode:NMATransportModeTruck routingOptions:0];
- 他のトラックルート探索プロパティを設定します。
routingMode.vehicleLength = 25.25f; routingMode.vehicleHeight = 2.6f; routingMode.trailersCount = 1;
- を呼び出してルートを計算
calculateRouteWithStops:routingMode:completionBlock:
します。[coreRouter calculateRouteWithStops:stops routingMode:routingMode completionBlock:^(NMARouteResult *routeResult, NMARoutingError error) { // If the route was calculated successfully if (!error && routeResult && routeResult.routes.count > 0) { NMARoute* route = [routes objectAtIndex:0]; // Render the route on the map mapRoute = [NMAMapRoute mapRouteWithRoute:route]; [mapView addMapObject:mapRoute]; } else if(error) { // Display a message indicating route calculation failure } }];