欧州経済領域(EEA)のデベロッパー

返すフィールドを選択する

ルートまたはルート マトリックスをリクエストする場合は、フィールド マスクを使用して、レスポンスで返す情報を指定する必要があります。返されるフィールドのデフォルトのリストはありません。フィールド マスクを指定しない場合、メソッドはエラーを返します。

フィールド マスクを使用すると、不要なデータをリクエストしないようにすることもできます。これにより、レスポンス レイテンシが短縮され、システムで不要な情報が返されるのを防ぐことができます。

必要なフィールドのリストは、レスポンス フィールド マスクで指定します。次に、URL パラメータ $fields または fields を使用するか、HTTP ヘッダーまたは gRPC ヘッダー X-Goog-FieldMask を使用して、レスポンス フィールド マスクをいずれかのメソッドに渡します。

URL パラメータの詳細については、システム パラメータをご覧ください。

レスポンス フィールド マスクを定義する

レスポンス フィールド マスクはパスのカンマ区切りのリストです。各パスは、レスポンス メッセージ内の固有のフィールドを指定します。パスは最上位のレスポンス メッセージから始まり、ドット区切りのパスを使用して指定されたフィールドに移動します。

次のようにフィールドパスを構築して指定します。

  1. 必要な情報が含まれているフィールドを見つけます。詳細については、フィールド参照をご覧ください。
  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 の Compute Routes または Compute Route Matrix のリファレンスをご覧ください。リファレンスに示すように、フィールドをキャメルケースで指定します。例: routePreference

これらのリファレンスには使用可能なフィールドが含まれていますが、完全なフィールド マスクパスを特定するには、フィールドの階層を参照する必要があります。フィールドの階層を取得する方法については、使用するフィールド マスクを決定するをご覧ください。

  • ルート フィールド マスクを計算する
    • REST: レスポンスで返す Route オブジェクトのフィールドを指定します。routes. を接頭辞として使用します(例: routes.distanceMeters)。
    • gRPC: レスポンスで返す Route オブジェクトのフィールドを指定します。
  • Compute Route Matrix のフィールド マスク

使用するフィールド マスクを決定する

使用するフィールドを決定し、それらのフィールドのフィールド マスクを作成する方法は次のとおりです。

  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 呼び出し

最初の例では、REST 呼び出しを使用して computeRoutes メソッドを呼び出し、ルートを計算します。この例では、ヘッダーでフィールド マスクを指定して、レスポンスでルートの distanceMeters フィールドと duration フィールドを返します。フィールド名の前に routes を付けるようにしてください。

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

computeRouteMatrix への REST 呼び出し

ルート マトリックスの計算に使用される REST computeRouteMatrix メソッドの場合、ヘッダーで、出発地と目的地の各組み合わせに対して originIndexdestinationIndexduration を返すように指定します。

X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC 呼び出し

gRPC の場合は、レスポンス フィールド マスクを含む変数を設定します。その変数をリクエストに渡すことができます。

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

フィールドパスに関する考慮事項

レスポンスに必要なフィールドのみを含めて、必要なフィールドのみを返します。

  • 処理時間が短縮されるため、結果が低レイテンシで返されます。
  • レイテンシのパフォーマンスを安定させます。すべてのフィールドを選択した場合、または最上位ですべてのフィールドを選択した場合、新しいフィールドが追加され、レスポンスに自動的に含まれると、パフォーマンスが低下する可能性があります。
  • レスポンス サイズが小さくなるため、ネットワーク スループットが向上します。
  • 不要なデータをリクエストしないようにすることで、不要な処理時間や課金を回避できます。

フィールド マスクの作成の詳細については、field_mask.proto をご覧ください。