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:
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.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 em 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.
Adicionar tratamento de cliques a marcadores: confira exemplos em Adicionar tratamento de cliques.
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:
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);
}
};