呼叫路線或計算路徑矩陣時,您必須指定在回應中要傳回的欄位。沒有傳回預設欄位的清單。如果省略這份清單,方法會傳回錯誤。
建立回應欄位遮罩以指定欄位清單。接著,將回應欄位遮罩透過網址參數 $fields
或 fields
或使用 HTTP/gRPC 標頭 X-Goog-FieldMask
傳遞至每個方法。
欄位遮蓋是一項最佳做法,確保您不會要求不必要的資料,進而避免不必要的處理時間和帳單費用。
如要進一步瞭解網址參數,請參閱系統參數。
定義回應欄位遮罩
回應欄位遮罩是一份以半形逗號分隔的路徑清單,其中每個路徑都會在回應訊息中指定不重複的欄位。路徑是從頂層回應訊息開始,並使用指定欄位的點分隔路徑。
欄位路徑的建構方式如下:
topLevelField[.secondLevelField][.thirdLevelField][...]
針對運算路徑方法,欄位路徑會指定:
如果是運算路徑矩陣方法,欄位路徑會指定下列欄位:
- 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" )
欄位路徑注意事項
回應中必須包含的欄位。只傳回需要的欄位:
允許我們的伺服器儲存處理週期,讓我們能傳回延遲時間較短的結果。
確保穩定效能。未來我們可能會新增更多回應欄位,而這些新欄位可能需要額外的運算時間。如果選取所有欄位,或是在頂層選取所有欄位,則由於系統新增的所有新欄位都會自動納入您的回應,因此效能可能會降低。
產生較小的回應大小,從而提高網路處理量。
確保您不會要求不必要的資料,以免產生不必要的處理時間和帳單費用。