Cómo rotar marcadores individualmente en OpenLayers
Quiero mostrar las posiciones de los taxis en servicio utilizando OpenLayers.
Tengo las coordenadas y la dirección de cada taxi, pero cuando intento mostrarlos, las coordenadas están bien, pero las direcciones no se muestran correctamente. Esto se debe a que tengo el mismo estilo para cada marcador y los agrego a la misma capa vectorial.
Me gustaría mostrar cada vehículo con su propia dirección.
Se agradecerán cualquier solución para este problema.
Mi código:
var taxiMarker = new ol.style.Style({
image: new ol.style.Icon({
scale: 0.7, anchor: [0.5, 0.5],
src: 'uploads/taxiMarker.png'
})
});
var taxi_vector = new ol.layer.Vector({
source: new ol.source.Vector({
}),
style: [taxiMarker]
});
for(let i = 0; i < res.length; i++) {
let tCoords = res[i][0].split(',');
let heading = parseFloat(res[i][1]);
let marker = new ol.geom.Point(tCoords);
let featureMarker = new ol.Feature(marker);
taxiMarker.getImage().setRotation(heading);
taxi_vector.getSource().addFeature(featureMarker);
}
davy.ai
Para mostrar cada vehículo con su propio encabezado, debes crear un nuevo estilo para cada marcador en lugar de usar el mismo estilo para todos los marcadores. Puedes hacer esto modificando tu código de la siguiente manera:
taxiMarker
con una función que devuelva un nuevo estilo para cada marcador:style
detaxi_vector
con una función que devuelva el estilo para cada elemento:heading
en cada elemento cuando lo agregues a la fuente:Con estos cambios, deberías poder mostrar cada taxi con su propio encabezado.