2017-02-23 16 views
0

次のコードはマップ上にポリゴンを作成することができます。これはうまくいきますが、新しいレイヤーが追加されたときに以前のgeojsonレイヤーも表示されます。別のレイヤーを追加すると、以前のポリゴン(geojsonレイヤー)が自動的にリーフレットを削除しますか?

私は郵便番号のドロップダウンをしています。私は、リーフレットの地図上に選択した郵便番号の境界線を表示したいと思います。問題は、ユーザーが別の郵便番号を選択したときに、新しいポリゴンが表示されているが、古いポリゴンも下の画像で見られるように表示されているということです。

enter image description here

誰もがどこで(removeLayersを書くべき私を助けてください)。私に提案してください。

答えて

0

varを使用して変数を再宣言すると、以前のオブジェクトへの参照が失われるという問題があります。

つまり、getコールの外で変数を宣言する必要があります。ちょうどあなたのjavascriptファイルの上に。

var polyLayer; 

次に、get関数でその行からvarを削除します。私はまだ前のポリゴンを示し、これをしようとしたとき

if(polyLayer) 
{ 
    map.removeLayer(polyLayer); // remove the old polygon... 
} 
polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map); // ...then add the new polygon 

var polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map); 

+0

を変更 –

関連する問題