返す情報を選択する

ルートまたはルート マトリックスを計算するメソッドを呼び出すと、 目的のフィールドのリストを表示して、必要な情報を 返されます。返されるフィールドのデフォルト リストはありません。このリストを省略すると、メソッドはエラーを返します。

レスポンス フィールド マスクを作成して、フィールド リストを指定します。次に、 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 です。

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

  • コンピューティング ルートのフィールド マスク <ph type="x-smartling-placeholder">
      </ph>
    • REST: Cloud Storage バケットの Route オブジェクト 先頭に routes. が付加されて返されるレスポンスです。次に例を示します。 routes.distanceMeters
    • gRPC: アプリケーションのフィールドを指定します。 Route オブジェクト 返されます。
  • ルート マトリックスのフィールド マスクの計算 <ph type="x-smartling-placeholder">

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

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

  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

ルートトークンをリクエストする

生成されたルートのルートトークンを 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 リファレンス