SDK for Android 開発者ガイド

Fleet Telematics カスタムルート

Fleet Telematics カスタムルート (FTCR) API には、 HERE Map Data および顧客のプライベートマップ データを使用して、ルートの計算、地図への表示、簡単なターン・バイ・ターンナビ (矢印ナビ)の実行を行う機能があります。 FTCR API は、一般的なルーティングおよびナビゲーションに似ていますが、それらと比較して限定的な機能を提供します。 FTCR でカバーされるユースケースの詳細について は、 Fleet Telematics カスタムルート API 開発者ガイドを参照してください。

FTCR クラス

クラス 説明
FTCRRouter Fleet Telematics カスタムルートのルート計算実行者。
FTCRRoutePlan ftcr ルートの計算に必要なすべての情報が含まれています。
FTCRRouteOptions ftcr ルート計算のオプションが含まれています。
FTCRRoute 2 つ以上の経由地を接続する個別の Fleet Telematics カスタムパスを表します。
FTCRNavigationManager FTCR ルートに関するガイダンスアドバイスおよび情報を提供するナビゲーション管理者クラス。
FTCRMapRoute FTCRRoute に表示できるを表し Mapます。
FTCRLaneInformation の車線情報に関する情報を表し FTCRManeuverます。
FTCRManeuver での操作に関する情報を表し FTCRRouteます。
FTCRRouteWarning の警告について説明します FTCRRoute
FTCRVoiceGuidanceOptions FTCR ガイダンスの音声プロンプトを設定できます。

FTCR ルートの計算

計算するステップ FTCRRoute は、一般的なルーティングの場合と同じです。 ftcr パッケージ : FTCRRouterFTCRRoutePlanおよびFTCRRouteOptionsのクラスを使用して、ルートを計算します。 ルート計算はオンラインモードでのみ機能することに注意してください。 以下の FTCR ルートの計算例を参照してください。

void calculateRoute() {
  // waypoints setup
  final RouteWaypoint start = new RouteWaypoint(new GeoCoordinate(52.514184, 13.316419));
  RouteWaypoint destination = new RouteWaypoint(new GeoCoordinate(52.512272, 13.383096));
  List<RouteWaypoint> waypoints = Arrays.asList(start, destination);

  // fleet telematics options
  FTCRRouteOptions routeOptions = new FTCRRouteOptions();
  routeOptions.setUseTraffic(true)
      // Other transport modes such as TRUCK, PEDESTRIAN, SCOOTER, BICYCLE
      // and BUS are also supported.
      .setTransportMode(FTCRRouteOptions.TransportMode.CAR)
      .setRouteType(FTCRRouteOptions.Type.FASTEST)
      // see API reference to check all possible routing options
      .addAvoidArea(new GeoBoundingBox(new GeoCoordinate(52.521842, 13.375375),
          new GeoCoordinate(52.518212, 13.380335)));

  FTCRRouter router = new FTCRRouter();
  FTCRRoutePlan ftcrRoutePlan = new FTCRRoutePlan(waypoints, routeOptions);
  // set overlay name if needed
  ftcrRoutePlan.setOverlay("OVERLAYNAME");
  router.calculateRoute(ftcrRoutePlan, new FTCRRouter.Listener() {
    @Override
    public void onCalculateRouteFinished(@NonNull List<FTCRRoute> routes,
                       @NonNull FTCRRouter.ErrorResponse error) {
      if (error.getErrorCode() == RoutingError.NONE && !routes.isEmpty()) {
        startNavigation(routes.get(0));
      }
    }
  });
}

FTCR ターンバイターンガイダンス

FTCRNavigationManager 開発者がルート沿いの簡単なターンバイターンガイダンスを実行できます。 LocationDataSource でカスタムを使用して、ルートのシミュレーションやルートのナビゲート PositioningManagerを行うことができます。 FTCR ナビゲーションの機能は以下と異なります NavigationManager。マップマッチャーはオンラインサーバーからのルートジオメトリにのみ基づいており、再ルーティングはオンラインモードでのみ利用でき、速度警告などの一部のナビゲーションイベントはサポートされていません。 以下の FTCR ナビゲーションを開始する例を参照してください。

FTCRNavigationManager.FTCRNavigationManagerListener navListener
    = new FTCRNavigationManager.FTCRNavigationManagerListener() {
  @Override
  public void onStopoverReached(int index) { }
  @Override
  public void onDestinationReached() { }
  @Override
  public void onRerouteBegin() { }
  @Override
  public void onLaneInformation(@NonNull List<FTCRLaneInformation> lanes) { }
  @Override
  public void onCurrentManeuverChanged(@Nullable FTCRManeuver currentManeuver,
                     @Nullable FTCRManeuver nextManeuver) { }

  @Override
  public void onRerouteEnd(@Nullable FTCRRoute newRoute,
      @NonNull FTCRRouter.ErrorResponse error) {
    // We must remove old route from the map and add new one, SDK does not do that
    // automatically
    if (error.getErrorCode() == RoutingError.NONE) {
      map.removeMapObject(currentRoute);
      currentRoute = new FTCRMapRoute(newRoute);
      map.addMapObject(currentRoute);
    }
  }
};

void startNavigation(FTCRRoute route) {
  // add route to the map
  currentRoute = new FTCRMapRoute(route);
  map.addMapObject(currentRoute);
  // set first route coordinate as map center
  map.setCenter(route.getGeometry().get(0), Map.Animation.NONE, 15.0f, 0f, 0f);
  // show indicator on the map
  mapFragment.getPositionIndicator().setVisible(true);

  ftcrNavigationManager.setMap(map);
  ftcrNavigationManager.setMapTrackingTilt(FTCRNavigationManager.TrackingTilt.TILT3D);
  ftcrNavigationManager.setMapTrackingMode(FTCRNavigationManager.TrackingMode.FOLLOW);
  ftcrNavigationManager.addNavigationListener(navListener);
  // also supports simulation and navigation using PositionSimulator
  ftcrNavigationManager.start(route);
}