リーフレットでマーカーを回転させるにはどうすればよいですか?私はすべて回転角のある多くのマーカーを持っています。リーフレットでマーカーを回転
私はLeaflet on GitHubでrunanet/coomsieからこのソリューションを試してみたが、何も私のマーカーで起こりません:
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);
他のアイデアやソリューション? (WindowsのFirefox 16でのテスト)
本当に私のアイコンは最初のドロー時に全く回転しません。 "setIconAngle"をクリックして角度を変更しようとしましたが、そのテストはコードの変更と非常によく機能しました。しかし、なぜ私のiconAngleが最初の描画で使われていないのですか? – sindrejh
アイコンをstartから回転させる回避策として、this._reset()を使用してマーカーからonAdd関数を拡張しました。 – sindrejh
便利なコードと答え。私はこのソリューションを実装しました - しかし、私は1つの問題があります。地図上でズームイン/ズームアウトすると、マーカの回転が0の角度にリセットされます。同じ問題がありましたか?地図のズームイン/アウト時にマーカーが角度をリセットする理由はありますか? –