呼叫 ComputeRoutes()
方法時,您必須指定要在回應中傳回的欄位。方法是使用回應欄位遮罩 (您提供給 $fields
或 fields
的網址參數),或使用 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。