2016-07-08 112 views
0

Openlayers 3の画像レイヤーに存在する機能を削除する方法があるかどうかを確認します(ol.layer.Image({})など)。ここで私はレイヤーを作成するために使用するコードは次のとおりです。私は現在、OpenLayersをして削除することができる機能を理解Openlayersの画像レイヤーの機能を削除する方法3

var vector = new ol.layer.Image({ 
    tethys_legend_title: titleName, 
    zIndex: 1, 
    source: new ol.source.ImageVector({ 
     source: vectorSource, 
     style: styleFunction, 
    }), 
}); 

// Make sure that the layer is not already existing, remove it if the layer does exist 
map = TETHYS_MAP_VIEW.getMap(); 
for (i = 0; i < map.getLayers().getProperties().length ; i ++){ 
    if (map.getLayers().item(i).getProperties().tethys_legend_title === titleName) 
     map.removeLayer(map.getLayers().item(i)); 
} 
vector.tethys_legend_title = 'Water Table'; 
map.addLayer(vector); 

方法は.removeFeature()方法です。ただし、removeFeature()メソッドはベクターレイヤーにのみ適用されます。画像レイヤーに関連する機能を削除する方法はありますか?ありがとう

+0

元のvectorSourceからフィーチャを削除しようとしましたか?あなたは 'vector.getSource()。getSource()'のようなあなたの機能を得ることができ、そこから 'removeFeature'を呼び出します。 –

+0

それは魅力のように働いた、ありがとう!あなたが答えをしたら、正しいものとして選択します。 画像レイヤーの機能を削除する一般的な方法がないことに気づいています。そのため、画像レイヤーのソースがベクター機能ではない場合、画像レイヤーからフィーチャーを削除する一般的な方法はありません。 – Jacob

答えて

1

まず、画像ソース内のベクターソースにアクセスする必要があります。vector.getSource().getSource()。その後、返されたol.source.VectorオブジェクトからremoveFeatureメソッドを使用できます。

関連する問題