20

サイドバーを表示されているレイヤーと同期させるために、ユーザーレイヤーの選択を検出したいと思います。

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

別の方法として、レイヤーのロードイベントとアンロードイベントを確認しましたが、返されるものにIDが表示されません。どういうわけかそれを逃しましたか?

4

4 に答える 4

34

ユーザーがレイヤーをアクティブ化/非アクティブ化したときに通知するイベントがいくつかあります。

これはあなたを助けるかもしれません:

https://leafletjs.com/reference-1.4.0.html#map-baselayerchange

例えば:

map.on('overlayadd', onOverlayAdd);

function onOverlayAdd(e){
    //do whatever
}
于 2014-08-29T11:28:35.213 に答える
30

ここに定義されている「baselayerchange」イベントがありますhttp://leafletjs.com/reference.html#control-layers マップオブジェクトにバインドするだけで準備完了です。

map.on('baselayerchange', function(e) {
  console.log(e);
});
于 2013-09-06T11:30:43.507 に答える
1

次のように、jQueryを使用して独自の「変更」イベントをLeafletレイヤーコントロールのラジオボタンにバインドできます。

    $("[name='leaflet-base-layers']").change( function () {
        alert('Layers selected: ' + $(this).parent().text());
    });
于 2013-01-10T15:02:25.640 に答える
0

私はまだ実際にそれを使用しようとはしていませんが、このプラグインは有望に見えます: https ://github.com/vogdb/Leaflet.ActiveLayers

これは非常に便利な機能なので、私のプロジェクトの1つで試してみます。

于 2013-05-15T09:58:31.573 に答える