Leaflet: DivIconでcssスタイルを設定する機能を追加します

作成日 2017年01月06日  ·  3コメント  ·  ソース: Leaflet/Leaflet

DivIconを作成するときにcssスタイルを設定できるようにしたいと思います。
現時点では、cssクラスのみを構成できます。

使用事例:
マーカーアイコンの形状を定義するcssクラスがありますが、アイコンの色はデータベースからのデータに基づいて動的に設定されるため、cssクラスにハードコーディングすることはできません。

最も参考になるコメント

この機能はで覆うことができるgetElement()の方法L.Marker例えば、:

var marker = new L.Marker(myCenter, {
  icon: L.divIcon()
});
map.addLayer(marker);

marker.getElement().style.border = '5px dotted lime';
marker.getElement().style.width = '50px';
marker.getElement().style.height = '50px';

実例を参照し

これはちょっとエッジケースなので、 L.DivIconクラスを拡張してカスタムスタイルを追加することをお勧めします。プラグインの作成に関するチュートリアルを読んで

L.DivIcon.CustomColor = L.DivIcon.extend({
    createIcon: function(oldIcon) {
           var icon = L.DivIcon.prototype.createIcon.call(this, oldIcon);
           icon.style.backgroundColor = this.options.color;
           return icon;
    }
})

個人的にはこれが広く使われている機能だとは思わないので、とりあえず閉じます。

全てのコメント3件

こんにちは、
アイコンの色はどういう意味ですか? cssでbackground-colorを設定し、DivIconで色を変更しました
screen shot 2017-01-06 at 6 10 18 pm

それはあなたが必要なものではありませんか? もっと具体的にお願いできますか?

こんにちは@ samik88

ユースケースで指定したように、マーカーアイコンの色(RGBカラーコード)はマーカー座標を使用してデータベースから取得されるため、cssクラスで定義することはできません(これを行うには、16777215を作成する必要があります) cssクラス(不透明度を含まないrgbカラーコードごとに1つ)。これはばかげたことです)。

マーカーのRGB色を入力できるテキストフィールドを追加することで、例を変更してユースケースを確認できます。そうすると、DivIconで設定できないため、マーカーアイコンの色を変更できなくなります。

これを行うには、生成されたDIVにcssスタイル属性を設定できるようにする必要があります

この機能はで覆うことができるgetElement()の方法L.Marker例えば、:

var marker = new L.Marker(myCenter, {
  icon: L.divIcon()
});
map.addLayer(marker);

marker.getElement().style.border = '5px dotted lime';
marker.getElement().style.width = '50px';
marker.getElement().style.height = '50px';

実例を参照し

これはちょっとエッジケースなので、 L.DivIconクラスを拡張してカスタムスタイルを追加することをお勧めします。プラグインの作成に関するチュートリアルを読んで

L.DivIcon.CustomColor = L.DivIcon.extend({
    createIcon: function(oldIcon) {
           var icon = L.DivIcon.prototype.createIcon.call(this, oldIcon);
           icon.style.backgroundColor = this.options.color;
           return icon;
    }
})

個人的にはこれが広く使われている機能だとは思わないので、とりあえず閉じます。

このページは役に立ちましたか?
0 / 5 - 0 評価