選擇要傳回的欄位

呼叫 ComputeRoutes() 方法時,您必須指定要在回應中傳回的欄位。方法是使用回應欄位遮罩 (您提供給 $fieldsfields 的網址參數),或使用 HTTP/gRPC 標頭 X-Goog-FieldMask。詳情請參閱系統參數一文。

欄位遮罩

欄位遮罩值是以半形逗號分隔的欄位路徑清單,每個欄位路徑都是以點分隔的欄位名稱清單,代表訊息階層。欄位名稱是 JSON 物件金鑰或 protobuf 欄位標記名稱。欄位路徑是從頂層回應訊息類型開始,並且選擇性地在後面加上一或多個點,然後是下一個層級的欄位名稱。一般來說,欄位路徑的建構方式如下:

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

特殊情況欄位遮罩是萬用字元「*」,會選取所有根層級欄位。

示例

以下範例說明如何設定 ComputeRoutes() 方法的欄位遮罩。

範例 1

所有可用欄位的欄位遮罩 (用於手動檢查)。

X-Goog-FieldMask: *

範例 2

路線層級時間長度、距離和折線的欄位遮罩 (範例生產設定)。

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

我們不建議在實際工作環境中使用萬用字元 (*) 回應欄位遮罩,或在頂層 (路徑) 指定欄位遮罩。僅選取所需欄位:

  • 可讓我們的伺服器儲存處理週期,進而以更短的延遲時間傳回結果。

  • 確保延遲時間穩定。我們日後可能會新增更多回應欄位,而這些新欄位可能需要額外的運算時間。如果您選取所有欄位,或是在頂層選取了所有欄位,則可能會遇到效能降低的情形,因為我們新增的任何欄位都會自動加到回應中。

  • 回應大小越小,網路總處理量就越高。

如要進一步瞭解如何建構欄位路徑,請參閱 field_mask.proto