Personalizar marcadores

Com a biblioteca de rastreamento de frotas em JavaScript, você pode personalizar a aparência dos marcadores adicionados ao mapa. Para fazer isso, especifique as personalizações de marcadores, que a biblioteca de rastreamento de frotas aplica antes de adicionar marcadores ao mapa e a cada atualização deles. É possível personalizar a aparência dos marcadores das seguintes maneiras:

  1. Estilo de marcadores com base no tipo: especifique um objeto MarkerOptions para estilizar marcadores do mesmo tipo. As mudanças especificadas são aplicadas depois que cada marcador é criado, substituindo todas as opções padrão. Para exemplos, consulte Marcadores de estilo com base no tipo neste guia.

  2. Estilo de marcadores com base em dados: especifique uma função de personalização com base em dados e adicione interatividade aos marcadores, como o processamento de cliques. É possível estilizar com base nos dados do rastreamento de frota ou de fontes externas:

    • Dados do rastreamento de frota: o rastreamento de frota transmite dados à função de personalização, incluindo o tipo de objeto que o marcador representa: veículo, parada ou tarefa. O estilo do marcador muda com base no estado atual do elemento. Por exemplo, o número de paradas restantes ou o tipo de tarefa.

    • Fontes externas: é possível combinar dados de rastreamento de frota com dados de origens externas ao Fleet Engine e estilizar o marcador com base nessas informações.

    Para conferir exemplos, consulte Estilo de marcadores com base em dados.

  3. Adicionar tratamento de cliques a marcadores: confira exemplos em Adicionar tratamento de cliques.

  4. Filtrar quais marcadores estão visíveis: filtre quais marcadores aparecem com os recursos de filtragem disponíveis no provedor de localização do JavaScript. Exemplo:

  5. Usar a personalização de marcadores para rastrear um veículo de entrega de tarefas programadas: é possível personalizar marcadores para rastrear veículos. Para mais informações, consulte Usar a personalização de marcadores para rastrear um veículo de entrega.

Opções de personalização de marcadores

A biblioteca de rastreamento de frotas fornece os seguintes parâmetros de personalização:

Parâmetros de personalização de viagens sob demanda

Parâmetros de personalização de tarefas programadas

Estilo de marcadores com base no tipo

O exemplo a seguir mostra como configurar o estilo de um marcador de veículo com um objeto MarkerOptions. Siga este padrão para personalizar o estilo de qualquer marcador usando qualquer uma das opções listadas em Opções de personalização de marcadores.

Exemplo de viagens sob demanda

JavaScript

vehicleMarkerCustomization = {
  cursor: 'grab'
};

TypeScript

vehicleMarkerCustomization = {
  cursor: 'grab'
};

Exemplo de tarefas programadas

JavaScript

deliveryVehicleMarkerCustomization = {
  cursor: 'grab'
};

TypeScript

deliveryVehicleMarkerCustomization = {
  cursor: 'grab'
};

Estilo dos marcadores com base em dados

O exemplo a seguir mostra como configurar o estilo de um marcador de veículo usando funções de personalização. Siga este padrão para personalizar o estilo de qualquer marcador com base em dados usando qualquer uma das opções listadas em Opções de personalização de marcadores acima.

Exemplo de viagens sob demanda

JavaScript

vehicleMarkerCustomization =
  (params) => {
    const remainingWaypoints = params.vehicle.waypoints.length;
    params.marker.setLabel(`${remainingWaypoints}`);
  };

TypeScript

vehicleMarkerCustomization =
  (params: VehicleMarkerCustomizationFunctionParams) => {
    var remainingWaypoints = params.vehicle.waypoints.length;
    params.marker.setLabel(`${remainingWaypoints}`);
  };

Exemplo de tarefas programadas

JavaScript

deliveryVehicleMarkerCustomization =
  (params) => {
    var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
    params.marker.setLabel(`${stopsLeft}`);
  };

TypeScript

deliveryVehicleMarkerCustomization =
  (params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
    var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
    params.marker.setLabel(`${stopsLeft}`);
  };

Adicionar o processamento de cliques aos marcadores

O exemplo a seguir mostra como adicionar o processamento de cliques a um marcador de veículo. Siga este padrão para adicionar o processamento de cliques a qualquer marcador usando qualquer uma das opções listadas em Opções de personalização de marcadores acima.

Exemplo de viagens sob demanda

JavaScript

vehicleMarkerCustomization =
  (params) => {
    if (params.isNew) {
      params.marker.addListener('click', () => {
        // Perform chosen action.
      });
    }
  };

TypeScript

vehicleMarkerCustomization =
  (params: VehicleMarkerCustomizationFunctionParams) => {
    if (params.isNew) {
      params.marker.addListener('click', () => {
        // Perform chosen action.
      });
    }
  };

Exemplo de tarefas programadas

JavaScript

deliveryVehicleMarkerCustomization =
  (params) => {
    if (params.isNew) {
      params.marker.addListener('click', () => {
        // Perform chosen action.
      });
    }
  };

TypeScript

deliveryVehicleMarkerCustomization =
  (params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
    if (params.isNew) {
      params.marker.addListener('click', () => {
        // Perform chosen action.
      });
    }
  };

Filtrar quais marcadores estão visíveis

Se você precisar usar setVisible, siga este padrão para filtrar marcadores usando qualquer uma das opções listadas em Opções de personalização de marcadores acima.

Exemplo de viagens sob demanda

JavaScript

vehicleMarkerCustomization =
  (params) => {
    var remainingWaypoints = params.vehicle.remainingWaypoints.length;
    if (remainingWaypoints > 10) {
      params.marker.setVisible(false);
    }
  };

TypeScript

vehicleMarkerCustomization =
  (params: VehicleMarkerCustomizationFunctionParams) => {
    var remainingWaypoints = params.vehicle.remainingWaypoints.length;
    if (remainingWaypoints > 10) {
      params.marker.setVisible(false);
    }
  };

Exemplo de tarefas programadas

JavaScript

deliveryVehicleMarkerCustomization =
  (params) => {
    var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
    if (stopsLeft > 10) {
      params.marker.setVisible(false);
    }
  };

TypeScript

deliveryVehicleMarkerCustomization =
  (params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
    var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
    if (stopsLeft > 10) {
      params.marker.setVisible(false);
    }
  };

A seguir