2017-06-27 10 views
1

ここに私の「問題」の簡単な例があります。リーフレットのL.Control.layerにキー/バリューのペアを追加します

私はこのようなキー/値のペアのリストを持っている:

var baseMaps = {"thing1": thing1, 
       "thing2": thing2}; 

var overlayMaps = {"OverLay1": link to overlay2 
        "Overlay2": link to overlay2}; 

など...........

を私はオブジェクトへ追加するには、このコードを使用することができますリスト:

overlayMaps["New Item"] = link to new item; 

私はコンソール上でそれがoverlayMapsリストに追加されたことを確認します。

問題:他のすべてのマップと同じように、マップの横のボックスには表示されません。彼らはそれらをオンとオフにするチェックマークがほとんど入っていない箱の中にいる。私はこれを行うにはいくつかのコードがありませんか?レイヤーグループリストをリフレッシュする方法が必要なようです。

答えて

1

残りのコードは例のとおりです(documentation)。

L.control.layers(baseLayers, overlays).addTo(map); 

コントロールインスタンスに何も割り当てられていないため、参照が失われているという問題があります。 addToメソッドは連鎖可能なので、それはあなたにコントロールを与えます。

var layerControl = L.control.layers(baseLayers, overlays).addTo(map); 

これでコードにアクセスし、layerControlのようなメソッドを実行できます。 addBaseLayer

関連する問題