대형 차량을 위한 세부 경로 안내 내비게이션 제공

이 가이드의 대상: 트럭 또는 기타 대형 차량 운전자를 위한 차량 내 내비게이션 환경을 구축하는 모바일 개발자라면 이 가이드를 읽어보세요.

이 가이드에서 다루는 내용: 이 가이드에서는 Routes API 또는 Route Optimization API에서 생성된 트럭 전용 경로를 가져와 Navigation SDK를 사용하여 세부 경로 안내 내비게이션 세션을 지원하는 방법을 설명합니다.

학습할 내용

다음 방법을 알아봅니다.

  • routeToken 사용: 백엔드 경로 계획을 앱 내 내비게이션 환경과 연결합니다.
  • Navigation SDK 구성 : 미리 계획된 트럭 경로를 사용합니다.
  • 트럭 전용 제한사항이 UI에서 운전자에게 표시되는 방식 이해 :

기본 요건

시작하기 전에 다음 요구사항을 충족해야 합니다.

프로젝트 설정

Google Cloud 프로젝트는 대형 차량 경로 지정을 위해 프로비저닝되어야 합니다. Routes API와 Navigation SDK에 별도의 프로젝트를 사용하는 경우 둘 다 적절하게 프로비저닝되어야 합니다.

경로 토큰 생성

먼저 트럭 경로 및 예상 도착 시간 생성 가이드의 안내에 따라 경로를 생성해야 합니다. 이 프로세스의 출력인 routeToken은 이 가이드의 단계를 완료하는 데 필요합니다.

최소 요구사항

앱은 최소 요구사항인 Navigation SDK 버전을 사용해야 합니다.

  • Android: 5.2.0 이상
  • iOS: 5.4.0 이상

또한 Navigation SDK 사용에 관한 모든 요구사항이 적용됩니다.

제한사항

시작하기 전에 다음 제한사항과 요구사항을 숙지해야 합니다.

  • 지리적 사용 가능 여부: 대형 차량 경로 지정은 미국 본토 48개 주에서만 사용할 수 있습니다.
  • 대형 차량 경로 지정은 미리보기 단계의 제품 입니다. 운전자는 안전 또는 합법성을 위해 이 API에서 반환된 경로에만 의존해서는 안 됩니다. 경로가 차량에 적합하다고 보장되지 않으며, 경로를 따를 경우 운전자가 낮은 다리 또는 대형 차량이 금지된 도로와 같은 위험에 노출될 수 있습니다.
  • 최선의 경로. 경우에 따라 API에서 이동 제한사항을 완전히 준수하는 경로를 찾을 수 없습니다. 대신 제한된 영역을 계속 통과할 수 있는 '최선의' 경로를 반환합니다. Routes API 응답은 routeRestrictionsPartiallyIgnored 필드에서 이러한 경로를 명확하게 표시합니다. 이러한 경우 다른 소스 데이터를 사용하여 경로를 신중하게 계획하세요. 표시된 경로를 계획 또는 내비게이션의 단일 정보 소스로 사용하지 마세요.
  • 지원되지 않는 기능: 이 제품에 더 많은 기능을 제공하기 위해 노력하고 있지만 대형 차량 경로 지정은 다음을 지원하지 않습니다.
    • 트럭 통행료
    • 제한 속도
    • 방사성 위험물의 경로 지정
  • 사용량 한도: 모든 요청에는 표준 초당 쿼리 수 (QPS) 한도가 적용됩니다.

트럭 전용 UI 표시

Navigation SDK는 지도에 경로 콜아웃이라는 시각적 경고를 자동으로 표시하여 운전자에게 다가오는 트럭 제한사항을 알립니다. 콜아웃은 계획된 경로에 포함된 제한사항에 대해 렌더링되지만 주변의 다른 도로에는 렌더링되지 않습니다.

SDK에는 다음 제한사항에 대한 콜아웃이 포함되어 있습니다.

제한사항 콜아웃 아이콘 및 텍스트 표시 조건
높이 노란색 높이 제한 아이콘
노란색 = 경고, 차량이 허용되는 최대 높이에 가까움
빨간색 높이 제한 아이콘
빨간색 = 차량이 허용되는 최대 높이보다 높음
차량의 높이가 제한사항에 가까워지면 노란색 콜아웃이 표시됩니다.
높이 제한 경고가 있는 지도
경로가 규정을 준수하지 않고 높이 제한사항을 위반하는 경우 빨간색 콜아웃이 표시됩니다.
높이 제한 위반이 있는 지도
무게 중량 제한 아이콘 차량의 무게가 도로의 제한사항을 초과하면 빨간색 콜아웃이 표시됩니다.
중량 제한 아이콘이 있는 지도
트럭 금지 트럭 금지 아이콘 트럭 제한사항이 있는 도로 구간을 이동할 때 빨간색 콜아웃이 표시됩니다.
트럭 금지 아이콘이 있는 지도
위험물 위험물 아이콘 차량의 위험물 적재가 도로 구간에서 금지된 경우 빨간색 콜아웃이 표시됩니다.
위험물 아이콘이 있는 지도

경로 토큰 워크플로

routeToken은 Routes API에서 생성된 경로의 암호화된 보안 스냅샷입니다. 여기에는 경로를 만드는 데 사용된 차량 프로필을 비롯한 모든 경로 세부정보가 포함되어 있습니다. 토큰을 사용하면 내비게이션 세션이 백엔드에서 계획한 경로와 일치합니다.

운전자가 내비게이션을 시작하면 교통상황과 도로 상태에 따라 Navigation SDK에서 제공하는 경로가 변경될 수 있습니다. 경우에 따라 경로 토큰에 지정된 경로와 다를 수 있습니다.

이러한 경우와 운전자가 계획된 경로에서 벗어나는 경우 경로 토큰을 사용하면 새로 계산된 경로가 원래 Routes API 요청에 구성된 차량 속성을 준수합니다.

워크플로는 다음 단계를 따릅니다.

  1. 백엔드에서 Routes API 에 트럭 경로를 요청합니다.
  2. Routes API가 routeToken을 반환 합니다.
  3. 백엔드에서 이 토큰을 모바일 애플리케이션 으로 전송합니다.
  4. 모바일 앱은 routeTokenNavigation SDK 에 전달하여 이동을 시작합니다.
  5. Navigation SDK는 세부 경로 안내 환경의 모든 측면을 처리합니다. 여기에는 운전자가 경로에서 벗어나는 경우 원래 차량 제한사항을 유지하면서 경로를 재지정하는 것이 포함됩니다.

구현: 트럭 전용 이동 시작

트럭 경로로 내비게이션 세션을 시작하려면 경로 토큰을 Navigator에 전달합니다.

1단계: 경로 토큰 가져오기

애플리케이션은 백엔드 서버에서 routeToken 문자열을 수신합니다.

다음 코드는 토큰의 예입니다.

CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g

2단계: 토큰을 Navigator에 전달

이동 목적지를 설정할 때 Navigator에 routeToken을 제공합니다. 그러면 Navigation SDK는 이동의 모든 경로 계산에 이 토큰을 사용합니다.

Navigation SDK에는 TravelMode 구성이 있으며 TravelMode.DRIVING으로 설정해야 합니다. 이는 TRUCK으로 설정해야 하는 Routes API의 travelMode 구성과는 별개입니다. Routes API travelMode 구성은 routeToken에 인코딩되어 있으며 Navigation SDK에 트럭 전용 환경과 경로를 표시하도록 신호를 보냅니다.

Android

CustomRoutesOptions.builder()를 사용하여 토큰을 설정한 후 navigator.setDestinations()에 전달합니다.

// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"

val customRoutesOptions = CustomRoutesOptions.builder()
    .setRouteToken(routeToken)
    .setTravelMode(TravelMode.DRIVING)
    .build()

// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
    .setLatLng(10.0, 20.0)
    .setTitle("title")
    .setVehicleStopover(true)
    .build()
destinations.add(destination);

navigator.setDestinations(destinations, customRoutesOptions)

iOS

경로 토큰을 만들 때 사용한 것과 동일한 목적지 경유지를 지정하여 mapView.navigator setDestinations 메서드를 사용하여 경로 토큰을 Navigation SDK에 전달합니다.

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})

다음 단계