Wybierz pola do zwrócenia

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ą:

    • REST: pola obiektu Route w odpowiedzi zwracanej przez prefiks routes.. na przykład routes.distanceMeters.
    • gRPC: pola obiektu Route w odpowiedzi do zwrócenia.
  • W przypadku metod tablicy tras obliczeniowych ścieżki zawierają pola:

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.