2017-05-30 2 views
0

hereの受け入れられた回答を使用して、マップ上の機能をプログラムで選択しています。Openlayers 4.11:機能をプログラマチックに選択するときにスタイルが適用されない

私のカスタム選択スタイルが適用されていないことを除いて、すべてokです(要素は以前と同じように見えます)。

私はセットアップに私のSelectの相互作用を、このコードを使用しています:

var selectSingleOrDoubleClick = new ol.interaction.Select({ 
    style: this.selectCustomStyle, 
    condition: function(mapBrowserEvent) { 
     return ol.events.condition.singleClick(mapBrowserEvent) || ol.events.condition.doubleClick(mapBrowserEvent); 
    }, 
    filter: function(feature, layer) { 
     ... 
    } 
}); 

私はプログラム的に私の機能を選択するためにこれをやっている:

selectSingleOrDoubleClick.getFeatures().clear(); 
selectSingleOrDoubleClick.getFeatures().push(featureToSelect); 

selectControl.dispatchEvent({ 
    type: 'select', 
    selected: [featureToSelect], 
    deselected: [] 
}); 

私が機能することをすべきでありませんIS consideredが選択されている(たとえば、ユーザーの操作で別の機能を選択した場合、以前選択した機能が選択されなくなるなど)

+0

サンプルJsfiddleやどこからでも同じエラーを再現できるサンプルを作成することは可能ですか? –

答えて

0

あなたの選択に関係する機能がすでにのデフォルト以外のスタイルがに適用されている場合、これはOpenlayersの通常の動作です。

これを修正したい場合は、適用する必要があるスタイルを適用するために、select/unselectイベントを適用し、必要に応じて削除する必要があります。

関連する問題