2012-12-31 16 views
10

すべて私は表示されたレイヤーとサイドバーを同期させるためにユーザーレイヤの選択を検出したいと思います。チラシ層制御イベント?

しかしAPIリファレンスでレイヤーコントロールイベントは表示されません。このようなユーザー層の選択がいつ発生したかはどのようにわかりますか?

代わりに、レイヤのロードとアンロードのイベントを見てきましたが、返されたイベントの識別情報は表示されません。私は何とかそれを逃しましたか?私は実際にはまだそれを使用しようとしていないが、このプラグインは有望に見える

$("[name='leaflet-base-layers']").change(function() { 
     alert('Layers selected: ' + $(this).parent().text()); 
    }); 
+0

どのような種類のレイヤーですか? –

答えて

15

ユーザーが/ desactivatesを起動したとき、あなたが知っているいくつかのイベントがあります。層

これはあなたを助けるかもしれない:。

http://leafletjs.com/reference.html#control-layers-baselayerchange

たとえば、

map.on('overlayadd', onOverlayAdd); 

function onOverlayAdd(e){ 
    //do whatever 
} 
+0

それはそうです。ありがとう! – user1032402

+0

これは、ユーザーが手動でコントロールを介してレイヤーを追加した場合、またはレイヤーが追加されたとき* – Rikaelus

+0

http://leafletjs.com/reference-1.0.3.html#map-baselayerchange @Adrian GarciaのURLを更新しました – Greg

2

あなたはリーフレット層に独自の「変更」イベントを結合することができるが、このようなjQueryを使ってラジオボタンを制御しますhttps://github.com/vogdb/Leaflet.ActiveLayers

これは非常に便利な機能であるため、私は自分のプロジェクトの1つでそれを打ち明かします。

+0

私は、リーフレットの非JQueryレイヤーコントロールを使用したいと考えていましたが、それは不可能だと思われ始めています。どの種類のレイヤーでも、私はどんなものでも満足しています。 – user1032402

15

あり「baselayerchange」ここで定義されたイベントhttp://leafletjs.com/reference.html#control-layers ちょうどマップオブジェクトにバインドされ、あなたが行ってもいいです。

map.on('baselayerchange', function(e) { 
    console.log(e); 
}); 
関連する問題