選擇要傳回的欄位

呼叫方法計算路徑或計算路徑矩陣時,您必須指定要在回應中傳回哪些欄位。系統並未傳回傳回欄位的預設清單。如果省略此清單,則方法會傳回錯誤。

建立回應欄位遮罩以指定欄位清單。然後,您可以使用網址參數 $fieldsfields,或使用 HTTP/gRPC 標頭 X-Goog-FieldMask,將回應欄位遮罩傳遞至每個方法。

欄位遮罩是一個不錯的設計做法,可確保您不會要求不必要的資料,以避免不必要的處理時間和帳單費用。

如要進一步瞭解網址參數,請參閱系統參數

定義回應欄位遮罩

回應欄位遮罩是以逗號分隔的路徑清單,其中每個路徑會在回應訊息中指定不重複的欄位。路徑從頂層回應訊息開始,並使用以點號分隔至指定欄位的路徑。

欄位路徑的建構方式如下:

topLevelField[.secondLevelField][.thirdLevelField][...]
  • 如果是運算路徑方法,欄位路徑會指定:

    • REST:要傳回的回應中 Route 物件的欄位,前面加上 routes.。例如:routes.distanceMeters
    • gRPC:要傳回回應的 Route 物件欄位。
  • 如果是運算路徑矩陣方法,欄位路徑會指定以下項目的欄位:

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

指定欄位路徑

本節包含如何將欄位路徑指定為回應欄位遮罩的一部分。

REST 呼叫 computeRoutes

在第一個範例中,您可以使用對 computeRoutes 方法的 REST 呼叫來計算路徑。在這個範例中,您可以指定在回應中傳回 Route.distanceMetersRoute.duration 欄位。記得在欄位名稱前加上「routes.

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

REST 呼叫 computeRouteMatrix

如果是用於計算路徑矩陣的 REST computeRouteMatrix 方法,請指定每個起點和目的地組合的 originIndexdestinationIndexduration

X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC 呼叫

針對 gRPC,請設定包含回應欄位遮罩的變數。接著,您可以將該變數傳送至要求。

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

欄位路徑注意事項

且僅須包含回應中所需的欄位。只傳回您需要的欄位:

  • 可讓我們的伺服器儲存處理週期,讓我們能縮短延遲時間。

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

  • 這樣可以產生較小的回應大小,進而增加網路處理量。

  • 確保您不會要求不必要的資料,這有助於避免不必要的處理時間和帳單費用。