2017-01-20 12 views
0

一部の専門家は、HTML-スライダー入力を使用して層群のタイルマップ不透明それぞれを変更する方法を知っていますか?リーフレット:レイヤーグループの不透明度を制御する方法は?

たとえば、次のようなLealetのLayercontrolボタンを使用して切り替えることができるいくつかのタイルマップがあります。Leaflet Layer Groups。 不透明度スライダーを使用して、各タイルマップを暗くしたいときは、が実際にアクティブであるだけでなく、です。例:map1を0.5に調整しています 次にmap2に切り替えると、その不透明度もすでに0.5になっています。そして、スライダでmap2の不透明度を0.8に変更してmap1に戻すと、map1は既に不透明度0.8である必要があります(前の調整値0.5ではなく)。

私はスライダコントロールの実装方法と変更方法を知っています私はアイデアを持っていない

nameOfMaplayer.setOpacity(opacityValue); 

しかし、コマンドを使用して単一タイルマップの不透明度はどのように変更するには、すべてのタイルマップペイン/グリッド層/アレイへのリーフレットのメソッドを使用してを参照します個々の個々のタイルマップの不透明度の代わりにマップのペイント不透明度simuうっかり。

答えて

1

は、私は満足のいく答えを見つけることが最終的に自分自身を考える:

我々はtilePaneの不透明度を変更したい場合(=ベースマップ-層およびoverlaymap-層):

map.getPane('tilePane').style.opacity = 0.5; 

しかし、このOverlay-tilemapsもぼやけてしまい、避けたいという欠点があります。

私の推奨する方法は、アクティブベースマップレイヤーの不透明度だけを変更することです。リーフレットは、アクティブベースマップレイヤを取得してサポートしていないので、あなたが -plugin 「Activelayers」を使用し、そのメソッドを使用する必要があります:あなたはベースマップを変更

ctrLayer = L.control.activeLayers(baseMaps, overlayMaps, {position: 'topright'}).addTo(map); 
..... 
tilemapLayer = ctrLayer.getActiveBaseLayer().layer; 
tilemapLayer.setOpacity(actualOpacityValue); 

たびに、あなたが実行する必要が後の2つのコマンドを使用して、新しいベースマップの不透明度を実際に使用された不透明度値に変更します。

関連する問題