2013-03-25 26 views
23

リーフレットに精通している人は、ポリゴンの色を動的に変更する方法を知っていますか?たとえば、次のように定義されたサークルを取る:ユーザーが(たとえば)のインターフェイス上のどこかのボタンをクリックした後リーフレットのポリゴンの色を動的に変更しますか?

window.circle = L.circle([51.508, -0.11], 500, { 
color: 'red', 
fillColor: '#ffffff', 
    fillOpacity: 0.5 
}).addTo(map); 

はその後、私はこのような円の色を変更したい:

window.circle.options.fillColor = "#dddddd"; 

コードはwindow.circle.options.fillColorの値を変更しますが、変更はマップ上のポリゴンの色の変更に反映されません。私は周りを検索しましたが、何も見つかりませんでした。何か案は?

ありがとうございました。

答えて

34

L.CircleはメソッドsetStyle(<Path options> object)を持っていること、L.Pathhttp://leafletjs.com/reference.html#path)を拡張し、あなたがこのような何かを探しているなら、あなたはwindow.circle.setStyle({fillColor: '#dddddd'});

+0

完璧に動作します。ありがとう! – Owen

+4

これは外観を変更するためにはうまくいくようです。しかし、私がこれを試してみると、コード内のそのレイヤーに反映されていないように見えます。私はスタイルを設定した後、何とかレイヤーを更新するはずですか? – Josh

1

として新しいスタイルを適用することができます。これらのオプションはにGeoJSONのために用意されてい

const circle = L.circle([lat, lng], { 
    style: style, 
    onEachFeature: onEachFeature, 
}); 

データ:すなわち、L.geojson().....:D

したがって、ポリゴン用です。 試してみてください。

});