반환할 정보 선택

경로 또는 경로 행렬을 계산하기 위해 메서드를 호출할 때 원하는 정보를 지정해야 합니다. 반환합니다. 반환된 필드의 기본 목록은 없습니다. 이 목록을 생략하면 메서드에서 오류를 반환합니다.

응답 필드 마스크를 만들어 필드 목록을 지정합니다. 그런 다음 두 메서드 중 하나에 대한 응답 필드 마스크를 URL 매개변수 $fields 또는 fields: HTTP 또는 gRPC 헤더 X-Goog-FieldMask를 사용합니다.

필드 마스크를 사용하면 불필요한 데이터를 확보하여 불필요한 처리에 드는 시간과 요금 청구를 방지할 수 있습니다.

URL 매개변수에 대한 자세한 내용은 시스템 매개변수.

응답 필드 마스크 정의

응답 필드 마스크는 쉼표로 구분된 경로 목록이며 path는 응답 메시지의 고유한 필드를 지정합니다. 경로는 최상위 응답 메시지에서 시작되며 지정된 필드에 대한 경로를 반환합니다.

다음과 같이 필드 경로를 생성하고 지정합니다.

  1. Routes API에서 필요한 정보가 포함된 필드를 찾습니다. 자세한 내용은 필드 참조를 확인하세요.
  2. 필요한 필드의 경로를 결정하고 필드에 맞는 필드 마스크를 구성: 자세한 내용은 사용할 필드 마스크 결정을 참고하세요.
  3. 필요한 모든 필드의 필드 마스크를 결합하고 필드 마스크는 쉼표로 구분합니다. 예를 들어 경로 구간의 distanceMeters와 각 경로 구간 단계의 소요 시간을 요청하려면 공백 없이 쉼표로 구분하여 모두 입력합니다.

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. API 요청과 함께 필드 마스크를 보냅니다. 예를 들어 cURL 요청에서 다음과 같이 -HX-Goog-FieldMask로 필드 마스크를 지정합니다.

    -H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
예시 및 자세한 내용은 다음 섹션을 참고하세요.

필드 참조

필드 마스크를 통해 응답에서 요청할 수 있는 필드를 보려면 다음 목록에 연결된 Routes API 참조를 확인하세요. 참조에 표시된 대로 필드를 카멜 표기법으로 지정합니다. 예를 들면 routePreference입니다.

이러한 참조에는 사용 가능한 필드, 하지만 전체 필드 마스크 경로를 확인하려면 필드의 계층 구조를 참조해야 합니다. 필드의 계층 구조를 가져오는 방법에 대한 자세한 내용은 사용할 필드 마스크 결정을 참고하세요.

  • 컴퓨팅 경로 필드 마스크
    • REST: Route 객체를 routes.가 앞에 붙은 반환할 응답입니다. 예를 들어 routes.distanceMeters입니다.
    • gRPC: Route 객체를 반환합니다.
  • 경로 행렬 필드 마스크 계산

사용할 필드 마스크 결정

사용할 필드를 결정하고 필드에 대한 마스크를 구성하는 방법은 다음과 같습니다.

  1. * 필드 마스크를 사용하여 모든 필드를 요청합니다.
  2. 필드의 계층 구조를 확인하세요. 지정할 수 있습니다.
  3. 다음 형식을 사용하여 이전 단계에서 설명한 필드의 계층 구조를 사용하여 필드 마스크를 구성합니다.

    topLevelField[.secondLevelField][.thirdLevelField][...]

예를 들어 경로의 부분 응답의 경우 다음과 같습니다.

"routes": [
    {
        "legs": [
            {  "steps": [
                    {"distanceMeters": 119},
                    {"distanceMeters": 41}  ]
            }
        ],
        "distanceMeters": 160
    }
]

경로 구간에 대해 distanceMeters 필드만 반환하려는 경우: 즉, 이전 샘플의 마지막 distanceMeters인 경우 필드 마스크는 다음과 같습니다.

routes.legs.distanceMeters

경로 구간의 각 단계에 관한 distanceMeters 필드를 대신 반환하려는 경우: 즉, 이전 샘플에서 steps 아래의 distanceMeters인 경우 필드 마스크는 다음과 같습니다.

routes.legs.steps.distanceMeters

위의 결과와 함께 둘 다 반환하려면 필드 마스크는 다음과 같습니다.

routes.legs.distanceMeters,routes.legs.steps.distanceMeters

필드 마스크 경로의 예

이 섹션에는 REST 및 gRPC 호출에서 응답 필드 마스크의 일부로 필드 경로를 지정하는 방법에 대한 추가 예시가 포함되어 있습니다.

computeRoutes에 대한 REST 호출

첫 번째 예에서는 computeRoutes 메서드를 사용하여 경로 이 예시에서는 헤더에서 필드 마스크를 지정하여 응답에 경로 distanceMetersduration 필드를 반환합니다. 필드 이름 앞에는 routes를 붙여야 합니다.

X-Goog-FieldMask: routes.distanceMeters,routes.duration

computeRouteMatrix에 대한 REST 호출

REST computeRouteMatrix 헤더에서 경로 매트릭스를 계산하는 데 사용되는 메서드이며, 각 출처 조합의 originIndex, destinationIndex, duration 및 대상:

X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC 호출

gRPC의 경우 응답 필드 마스크가 포함된 변수를 설정합니다. 그런 다음 이 변수를 요청에 전달할 수 있습니다.

const (
  fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline"
)

필드 경로 고려사항

응답에서 다음과 같은 필드가 있습니다.

  • 처리 시간이 단축되어 지연 시간이 단축되어 결과가 반환됩니다.
  • 안정적인 지연 시간 성능을 보장합니다. 만약 모든 필드를 선택하거나, 최상위 수준에서 모든 필드를 선택하는 경우 새 필드가 추가되면 성능이 저하되고 자동으로 포함됩니다
  • 응답 크기가 작아져 네트워크 처리량이 높아집니다.
  • 불필요한 데이터를 요청하지 않도록 합니다. 이를 통해 불필요한 처리에 드는 시간과 요금이 청구되지 않습니다.

필드 마스크 생성에 대한 자세한 내용은 field_mask.proto입니다.

경로 토큰 요청

Routes API가 생성된 경로에 대해 경로 토큰을 반환하도록 요청하려면 다음 단계를 따르세요.

  1. 경로 토큰을 반환하는 데 필요한 다음 매개변수를 설정합니다.
    • travelModeDRIVE로 설정합니다.
    • routingPreferenceTRAFFIC_AWARE 또는 TRAFFIC_AWARE_OPTIMAL으로 설정합니다.
  2. 경로 경유지에 via 경유지가 없는지 확인합니다.
  3. 경로 토큰을 반환하려면 routes.routeToken 필드 마스크를 지정하세요.
    X-Goog-FieldMask: routes.routeToken

Navigation SDK에서 계획된 경로에 대한 경로 토큰을 사용할 수 있습니다. 자세한 내용은 경로 계획하기 (Android) 또는 경로 계획 (iOS)을 참조하세요.

경로 토큰 예

다음은 단일 출발지, 단일 목적지에 대한 cURL 요청 본문의 예입니다. route: 필드 마스크를 사용하여 경로 토큰을 요청하는 경로 소요 시간, 거리 및 경로 다중선:

curl -X POST -d
{"origin":{
    "location": {
        "latLng":{
            "latitude":  -37.8167,
            "longitude": 144.9619
        }
    }
},
"destination":{
    "location": {
        "latLng":{
            "latitude":-37.8155,
            "longitude": 144.9663
        }
    }
},
"routingPreference":"TRAFFIC_AWARE",
"travelMode":"DRIVE"
}
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H X-Goog-FieldMask: routes.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
'https://routes.googleapis.com/directions/v2:computeRoutes'

자세한 내용은 Compute Routes API 참조