Come posso ruotare un marker nel volantino? Avrò molti segnalini, tutti con un angolo di rotazione.Rotate marker in Leaflet
ho provato questa soluzione da runanet/coomsie a Leaflet on GitHub, ma non succede nulla con il mio marcatore:
L.Marker.RotatedMarker= L.Marker.extend({
_reset: function() {
var pos = this._map.latLngToLayerPoint(this._latlng).round();
L.DomUtil.setPosition(this._icon, pos);
if (this._shadow) {
L.DomUtil.setPosition(this._shadow, pos);
}
if (this.options.iconAngle) {
this._icon.style.WebkitTransform = this._icon.style.WebkitTransform + ' rotate(' + this.options.iconAngle + 'deg)';
this._icon.style.MozTransform = 'rotate(' + this.options.iconAngle + 'deg)';
this._icon.style.MsTransform = 'rotate(' + this.options.iconAngle + 'deg)';
this._icon.style.OTransform = 'rotate(' + this.options.iconAngle + 'deg)';
}
this._icon.style.zIndex = pos.y;
},
setIconAngle: function (iconAngle) {
if (this._map) {
this._removeIcon();
}
this.options.iconAngle = iconAngle;
if (this._map) {
this._initIcon();
this._reset();
}
}
});
var rotated = new L.Marker.RotatedMarker([63.42, 10.39]);
rotated.setIconAngle(90);
rotated.addTo(map);
Tutte le altre idee o soluzioni? (Test con Firefox 16 su Windows.)
La risposta mi ha aiutato molto, è rimasto solo un problema: in realtà la mia icona non ruota affatto al primo sorteggio. Ho provato a cambiare l'angolo al clic con "setIconAngle", quel test ha funzionato molto bene con le modifiche nel codice. Ma perché il mio iconAngle non è utilizzato per la prima estrazione? – sindrejh
Estesa la funzione onAdd da Marker con this._reset() come soluzione alternativa per far ruotare l'icona dall'inizio. – sindrejh
Codice e risposta utili. Ho implementato questa soluzione, tuttavia ho un problema. Ogni volta che eseguo lo zoom in/out sulla mappa, la rotazione dei marker si ripristina all'angolo 0. Hai avuto lo stesso problema? C'è qualche ragione per cui il marcatore ripristinerebbe il suo angolo quando la mappa zooma in/out? –