Выберите поля для возврата

Когда вы вызываете метод для вычисления маршрута или матрицы маршрутов, вы должны указать, какие поля вы хотите вернуть в ответе. Список возвращаемых полей по умолчанию отсутствует. Если вы опустите этот список, методы вернут ошибку.

Укажите список полей, создав маску поля ответа . Затем вы передаете маску поля ответа каждому методу, используя параметр URL-адреса $fields или fields или используя заголовок HTTP/gRPC X-Goog-FieldMask .

Маскирование полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать ненужного времени обработки и расходов на выставление счетов.

Дополнительные сведения о параметрах URL см. в разделе Системные параметры .

Определить маску поля ответа

Маска поля ответа представляет собой список путей, разделенных запятыми, где каждый путь определяет уникальное поле в ответном сообщении. Путь начинается с ответного сообщения верхнего уровня и использует разделенный точками путь к указанному полю.

Полевые пути строятся следующим образом:

topLevelField[.secondLevelField][.thirdLevelField][...]
  • Для методов вычисления маршрутов пути к полю указывают:

    • REST: поля объекта Route в возвращаемом ответе с префиксом routes. . Например, routes.distanceMeters .
    • gRPC: поля объекта Route в возвращаемом ответе.
  • Для методов вычисления матрицы маршрутов пути к полям определяют поля:

Дополнительные сведения о том, как создавать пути к полям, см. в field_mask.proto .

Укажите путь к полю

Этот раздел содержит пример того, как указать путь к полю как часть маски поля ответа.

Вызов REST для computeRoutes

В первом примере вы используете REST-вызов метода computeRoutes для расчета маршрута. В этом примере вы указываете возвращать поля 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"
)

Соображения по пути к полю

Включите в ответ только те поля, которые вам нужны. Возврат только тех полей, которые вам нужны:

  • Позволяет нашему серверу экономить циклы обработки, что позволяет нам возвращать ваши результаты с меньшей задержкой.

  • Обеспечивает стабильную производительность задержки. Возможно, в будущем мы добавим больше полей ответа, и эти новые поля могут потребовать дополнительного времени вычислений. Если вы выберете все поля или все поля на верхнем уровне, вы можете столкнуться со снижением производительности, поскольку любое новое поле, которое мы добавляем, будет автоматически включено в ваш ответ.

  • Результатом является меньший размер ответа, что приводит к более высокой пропускной способности сети.

  • Гарантирует, что вы не запрашиваете ненужные данные, что помогает избежать ненужного времени обработки и оплаты счетов.