Personalizar polilinhas do trajeto

Este documento explica como personalizar polilinhas de rotas para o mapa usado no app de rastreamento de trajetos baseado na Web para usuários finais e operadores de frota.

Com o SDK do consumidor, é possível controlar a visibilidade da polilinha de rota ou estilizar a polilinha de rota para o trajeto de uma viagem no mapa. O SDK cria um objeto google.maps.Polyline para cada par de coordenadas no trajeto ativo ou restante da viagem. A biblioteca aplica essas personalizações em duas situações:

  • antes de adicionar os objetos ao mapa
  • quando os dados usados para os objetos mudarem

Estilizar polilinhas de rotas

Assim como é possível estilizar marcadores, você estiliza polilinhas de rotas usando parâmetros de personalização. Em seguida, configure o estilo usando uma das seguintes abordagens:

  • Mais simples: use PolylineOptions para aplicar a todos os objetos Polyline correspondentes quando eles forem criados ou atualizados.
  • Avançado: especifique uma função de personalização. As funções de personalização permitem o estilo individual dos objetos com base nos dados enviados pelo Fleet Engine. A função pode mudar o estilo de cada objeto com base no estado atual da viagem. Por exemplo, colorindo o objeto Polyline com um tom mais escuro ou deixando-o mais grosso quando o veículo está se movendo mais devagar. Você pode até mesmo fazer junções com fontes externas ao Fleet Engine e estilizar o objeto Polyline com base nessas informações.

Parâmetros de personalização

Ao estilizar polilinhas de rotas, você usa parâmetros fornecidos em FleetEngineShipmentLocationProviderOptions. Esses parâmetros fornecem diferentes estados de caminho na jornada do veículo, da seguinte forma:

Usar PolylineOptions

O exemplo a seguir mostra como configurar o estilo de um objeto Polyline com PolylineOptions. Siga este padrão para personalizar o estilo de qualquer objeto Polyline usando uma das personalizações de polilinha listadas anteriormente.

JavaScript

activePolylineCustomization = {
  strokeWidth: 5,
  strokeColor: 'black',
};

TypeScript

activePolylineCustomization = {
  strokeWidth: 5,
  strokeColor: 'black',
};

Usar funções de personalização para estilizar polilinhas de rotas

O exemplo a seguir mostra como configurar o estilo de uma polilinha de rota ativa. Siga esse padrão para personalizar o estilo de qualquer objeto Polyline usando um dos parâmetros de personalização de polilinha de rota listados anteriormente.

JavaScript

// Color the route polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
  (params) => {
    const distance = params.taskTrackingInfo.remainingDrivingDistanceMeters;
    if (distance < 1000) {

      // params.polylines contains an ordered list of Polyline objects for
      // the path.
      for (const polylineObject of params.polylines) {
        polylineObject.setOptions({strokeColor: 'green'});
      }
    }
  };

TypeScript

// Color the route Polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
  (params: ShipmentPolylineCustomizationFunctionParams) => {
    const distance = params.taskTrackingInfo.remainingDrivingDistanceMeters;
    if (distance < 1000) {

      // params.polylines contains an ordered list of Polyline objects for
      // the path.
      for (const polylineObject of params.polylines) {
        polylineObject.setOptions({strokeColor: 'green'});
      }
    }
  };

Controlar a visibilidade da polilinha de rota

Por padrão, todos os objetos Polyline são visíveis. Para tornar um objeto Polyline invisível, defina a propriedade visible dele:

JavaScript

remainingPolylineCustomization = {visible: false};

TypeScript

remainingPolylineCustomization = {visible: false};