Podczas wywoływania metody wyznaczania trasy lub obliczania macierzy trasy musisz określić, które pola mają być zwracane w odpowiedzi. Nie ma domyślnej listy zwróconych pól. Jeśli pominiesz tę listę, metody będą zwracać błąd.
Określ listę pól przez utworzenie maski pola odpowiedzi. Następnie musisz przekazać maskę pola odpowiedzi do każdej metody, używając parametru URL $fields
lub fields
albo nagłówka HTTP/gRPC X-Goog-FieldMask
.
Maskowanie pól to dobry sposób projektowania, który pozwala uniknąć prośby o niepotrzebne dane, co pomaga uniknąć niepotrzebnego czasu przetwarzania i obciążeń rozliczeniowych.
Więcej informacji o parametrach adresów URL znajdziesz w artykule Parametry systemowe.
Zdefiniuj maskę pola odpowiedzi
Maska pól odpowiedzi to rozdzielana przecinkami lista ścieżek, w których każda ścieżka określa unikalne pole w odpowiedzi. Ścieżka zaczyna się od wiadomości najwyższego poziomu i używa ścieżki rozdzielanej kropkami do określonego pola.
Ścieżki pól są tworzone w ten sposób:
topLevelField[.secondLevelField][.thirdLevelField][...]
W przypadku metod obliczeniowych ścieżki pól określają:
W przypadku metod tablicy tras obliczeniowych ścieżki zawierają pola:
- REST: pola treści odpowiedzi, które mają zostać zwrócone.
- gRPC: pola obiektu RouteMatrixElement w odpowiedzi do zwrócenia.
Więcej informacji o tworzeniu ścieżek pól znajdziesz w sekcji field_mask.proto.
Określ ścieżkę pola
Ta sekcja zawiera przykład sposobu określania ścieżki pola w ramach maski pola odpowiedzi.
Wywołanie REST do: computeRoutes
W pierwszym przykładzie obliczamy trasę, korzystając z wywołania REST w metodzie computeRoutes
. W tym przykładzie określisz w odpowiedzi zwrócić pola Route.distanceMeters
i Route.duration
. Pamiętaj, aby poprzedzić nazwę pola „routes.
”
X-Goog-FieldMask: routes.distanceMeters,routes.duration
Wywołanie REST do: computeRouteMatrix
W przypadku metody REST computeRouteMatrix
służącej do obliczania macierzy tras zwracaj wartości originIndex
, destinationIndex
i duration
dla każdej kombinacji źródła i miejsca docelowego:
X-Goog-FieldMask: originIndex,destinationIndex,duration
Wywołanie gRPC
W przypadku gRPC ustaw zmienną zawierającą maskę pola odpowiedzi. Następnie możesz przekazać tę zmienną do żądania.
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
Uwagi na temat ścieżki
Uwzględnij tylko te pola, które są wymagane w odpowiedzi. Zwracanie tylko potrzebnych pól:
Umożliwia serwerowi zapisywanie cykli przetwarzania, co pozwala nam zwracać wyniki z krótszym czasem oczekiwania.
Zapewnia stabilne opóźnienie. W przyszłości możemy dodać więcej pól odpowiedzi, które mogą wymagać dodatkowego czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, wydajność może się pogorszyć, ponieważ każde nowe pole zostanie automatycznie uwzględnione w Twojej odpowiedzi.
Powoduje to zmniejszenie rozmiaru odpowiedzi, co przekłada się na większą przepustowość sieci.
Dzięki temu nie poprosisz o niepotrzebne dane, co pozwoli uniknąć niepotrzebnego czasu przetwarzania i opłat.