iOS 開発者ガイド for SDK

トラックのルート探索

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されます。 他のルーティングタイプはサポートされていません。

ルート計算の例

  1. 前のルーティング例と同様に、 NMACoreRouter を作成してから NSArray を作成し、その経由地を設定します。
  2. トランスポート NMARoutingMode モードを初期化 NMATransportModeTruckしてに設定します。
    NMARoutingMode* routingMode = [[NMARoutingMode alloc] initWithRoutingType:NMARoutingTypeFastest transportMode:NMATransportModeTruck routingOptions:0];
    
  3. 他のトラックルート探索プロパティを設定します。
    routingMode.vehicleLength = 25.25f;
    routingMode.vehicleHeight = 2.6f;
    routingMode.trailersCount = 1;
    
  4. を呼び出してルートを計算 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
          }
        }];