私は、最初の不透明度を持つマップ上にgeoJsonマップ領域をレンダリングしました。その不透明度を即座に変更するスライダーがあります。ここで リーフレットで、今からスタイルをデフォルトのスタイルにする方法
は私が私のカスタムリーフレットコントロール内に入力された変更イベントで実行フライ(typescriptです)、上の不透明度を設定するビットです:this.layers.forEach((r: L.GeoJSON<any>) => {
r.eachLayer((layer: any) => {
layer.setStyle({ fillOpacity: vm.mapOptions.heatmapOpacity });
});
});
setTimeout(() => this.map.invalidateSize());
私はまた、上にカーソルを移動する能力を持っていますその場合、私は不透明度を下げ、それらが浮動するとアクティブ領域に境界線を置く。
リージョンを離れるときは、現在そのリージョンのresetStylesを使用して元のスタイルに戻します。 onFeatureコールバックのオプションでこれを設定しました。この領域はmouseoverイベントで強調表示され、以下のようにmouseoutイベントでリセットされます。
options = {
style: { stroke: false,
fillColor: regionColor,
fillOpacity: mapOptions.heatmapOpacity },
onEachFeature: (feature, layer) => {
layer.on({
mouseover: (e)=> {
const lr = e.target;
lr.setStyle({
weight: 5,
color: "#666",
dashArray: "",
fillOpacity: 0.7,
stroke: true
});
if (!L.Browser.ie && !L.Browser.opera12 && !L.Browser.edge) {
lr.bringToFront();
}
},
mouseout: (e) => {
prop.featureGeoJson.resetStyle(e.target);
}
});
}
};
私はその後、私はその後、私は再び地域を離れ、地方に行く、別の値に不透明度を設定するためのsetStyleを使用している場合、問題は、ある、resetStyleを呼び出すと、元のデフォルトのスタイルにスタイルをリセット不透明度の変更が行われる前に
レイヤーのデフォルトのスタイルを設定すると、resetStyleを呼び出すと、リージョンが作成されたときに元の不透明度セットではなく、新しい不透明度でスタイルが自分の値に設定されるようになりますか?どうすればいい?
うーん。それはうまくいかないようでした。不透明度は最初は変わらなかったので、私は同時に最初のステートメントを呼び出しました。 resetStyleはsetOptions値にリセットしませんでした。 – tone