呼叫方法計算路徑或計算路徑矩陣時,您必須指定要在回應中傳回哪些欄位。系統並未傳回傳回欄位的預設清單。如果省略此清單,則方法會傳回錯誤。
建立回應欄位遮罩以指定欄位清單。然後,您可以使用網址參數 $fields
或 fields
,或使用 HTTP/gRPC 標頭 X-Goog-FieldMask
,將回應欄位遮罩傳遞至每個方法。
欄位遮罩是一個不錯的設計做法,可確保您不會要求不必要的資料,以避免不必要的處理時間和帳單費用。
如要進一步瞭解網址參數,請參閱系統參數。
定義回應欄位遮罩
回應欄位遮罩是以逗號分隔的路徑清單,其中每個路徑會在回應訊息中指定不重複的欄位。路徑從頂層回應訊息開始,並使用以點號分隔至指定欄位的路徑。
欄位路徑的建構方式如下:
topLevelField[.secondLevelField][.thirdLevelField][...]
如果是運算路徑方法,欄位路徑會指定:
如果是運算路徑矩陣方法,欄位路徑會指定以下項目的欄位:
- REST:要傳回的回應主體欄位。
- gRPC:要傳回的回應中 RouteMatrixElement 物件的欄位。
如要進一步瞭解如何建構欄位路徑,請參閱 field_mask.proto。
指定欄位路徑
本節包含如何將欄位路徑指定為回應欄位遮罩的一部分。
REST 呼叫 computeRoutes
在第一個範例中,您可以使用對 computeRoutes
方法的 REST 呼叫來計算路徑。在這個範例中,您可以指定在回應中傳回 Route.distanceMeters
和 Route.duration
欄位。記得在欄位名稱前加上「routes.
」
X-Goog-FieldMask: routes.distanceMeters,routes.duration
REST 呼叫 computeRouteMatrix
如果是用於計算路徑矩陣的 REST computeRouteMatrix
方法,請指定每個起點和目的地組合的 originIndex
、destinationIndex
和 duration
:
X-Goog-FieldMask: originIndex,destinationIndex,duration
gRPC 呼叫
針對 gRPC,請設定包含回應欄位遮罩的變數。接著,您可以將該變數傳送至要求。
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
欄位路徑注意事項
且僅須包含回應中所需的欄位。只傳回您需要的欄位:
可讓我們的伺服器儲存處理週期,讓我們能縮短延遲時間。
確保延遲時間延遲。我們日後可能會新增更多回應欄位,而這些新欄位可能需要額外的運算時間。如果您選取所有欄位,或是在頂層選取所有欄位,則可能會降低效能,因為系統會自動新增任何新增至新欄位的欄位。
這樣可以產生較小的回應大小,進而增加網路處理量。
確保您不會要求不必要的資料,這有助於避免不必要的處理時間和帳單費用。