ルートを計算するルート ルートまたはルート マトリックスを計算するメソッドを呼び出すときは、レスポンスで返すフィールドを指定する必要があります。返されるフィールドのデフォルト リストはありません。このリストを省略すると、メソッドからエラーが返されます。
レスポンス フィールド マスクを作成してフィールド リストを指定します。次に、URL パラメータ $fields
または fields
を使用するか、HTTP/gRPC ヘッダー X-Goog-FieldMask
を使用して、レスポンス フィールド マスクを各メソッドに渡します。
フィールド マスキングは、不要なデータを要求せず、不要な処理時間と請求を回避するための優れた設計手法です。
URL パラメータの詳細については、システム パラメータをご覧ください。
レスポンス フィールド マスクの定義
レスポンス フィールド マスクは、パスのカンマ区切りのリストです。各パスでは、レスポンス メッセージ内の一意のフィールドを指定します。パスは、トップレベルのレスポンス メッセージから始まり、指定されたフィールドへのドット区切りパスが使用されます。
フィールドパスは次のように構築されます。
topLevelField[.secondLevelField][.thirdLevelField][...]
compute route メソッドの場合、フィールドパスで次のように指定します。
コンピューティング ルート マトリックス メソッドの場合、フィールド パスは次のフィールドを指定します。
- REST: 返すレスポンス本文のフィールド。
- gRPC: 返されるレスポンスの RouteMatrixElement オブジェクトのフィールド。
フィールドパスの作成方法については、field_mask.proto をご覧ください。
フィールドのパスを指定する
このセクションでは、レスポンス フィールド マスクの一部としてフィールドパスを指定する方法の例を示します。
computeRoutes
への REST 呼び出し
最初の例では、computeRoutes
メソッドに対する REST 呼び出しを使用してルートを計算します。この例では、レスポンスで Route.distanceMeters
フィールドと Route.duration
フィールドを返すように指定しています。フィールド名の先頭には「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" )
フィールドパスの考慮事項
レスポンスに必要なフィールドのみを含めます。必要なフィールドのみを返すようにします。
処理サイクルをサーバーが保存できるため、結果を低レイテンシで返すことができます。
安定したレイテンシ パフォーマンスを保証します。今後、レスポンス フィールドがさらに追加される可能性があります。それらの新しいフィールドでは計算時間が長くなる可能性があります。すべてのフィールドを選択した場合、またはトップレベルのすべてのフィールドを選択した場合、追加した新しいフィールドが自動的にレスポンスに含まれるため、パフォーマンスが低下する可能性があります。
その結果、レスポンス サイズが小さくなり、ネットワーク スループットの向上につながります。
不要なデータを要求しないようにすることで、不要な処理時間と請求料金を回避できます。