リーフレットのマップから凡例を削除する方法についての記事を読んだが、まだ運がない。私は年にインデックスされたタイムスライダーにリンクしたい伝説を持っています。私は時間スライダが何年になっても伝説をしなければならない。凡例を作成する機能は次のとおりです。リーフレットの削除/凡例の更新
function createLegend3(map, index){
var legendControl = L.Control.extend({
options: {
position: 'bottomright'
},
onAdd: function(map){
//create the container with a class name
var container = L.DomUtil.create('div', 'legend-control-container');
container.innerHTML += index
//create temporal legend
return container;
}
});
// //add the legendControl to map
map.addControl(new legendControl);
return legendControl;
}
前述したように、私は別のタイムスライダ機能(タイムスライダ(範囲スライダ)でユーザが異なる年をスクロールできる)を持っています。私の考え(ない、効率的な、私は知っている)、パラメータとしてインデックスを使用して、各年のcreateLegend3を呼び出すことだった:
if (index == 1971) {
createLegend3(map, index)
if (index == 1972) {
createLegend3(map, index)
問題は、マップは単純に更新するのではなく、毎回新しい伝説を追加するということです。単に既存の凡例を削除し、一度に1つしか表示されないように別の凡例を追加する方法もありますか?または、タイムスライダのインデックスの値に基づいて凡例を更新するより効率的な方法はありますか?事前にありがとうございます。
こんにちはiH8、お返事をありがとう!私はあなたのコードを実行したが、まだ伝説を得ることができません。何かご意見は? – DiamondJoe12
私はいくつかの最初の呼び出しが必要ですか:this.legend.addTo(map) – DiamondJoe12
JSFiddleまたはPlunkerで何が間違っているかを明確に示す例を共有していないと、私は暗闇の中にあり、ちょうど推測になります。私のプランカーをフォークして、あなたがやっていることに変えてここに投稿してみませんか? – iH8