2017-08-16 2 views
0

基本スタイルの関数を再利用して、一部のプロパティを上書きして選択スタイルを作成したいと考えています。 このアプローチは、線ストリング、ポリゴン、テキストの塗りつぶし/ストロークカラーでは機能しますが、イメージ(私の場合は円)では使用できません。 他のプロパティを保持する必要があるため、新しいイメージを作成したくありません。ログ出力が正しいですが、上記のコードは、選択にフィーチャーのスタイルを変更しないことをあなたが見ることができます。このfiddleOpenLayersのselectでスタイルプロパティを上書きする

var selectStyleFunction = function(feature, resolution) { 
    var style = styleFunction(feature, resolution)[0]; 
    style.getImage().getFill().setColor("magenta"); 

    console.log(style.getImage().getFill().getColor()); 

    return [style]; 
}; 

、。

このプロパティを上書きする方法はありますか?

+0

これについての議論があります:https://github.com/openlayers/openlayers/issues/5775 –

+0

あなたの答えをありがとうございますが、私はこのディスカッションが私の問題にどこに関係するのか分かりません。私が理解しているように、それは円を描くときの効率に関するものです。 – anste

+0

参照された問題https://github.com/openlayers/openlayers/issues/6233を見ると、何らかの情報があるかもしれません。 –

答えて

0

openlayersのAPIドキュメントに私の質問に対する答えが見つかりました。最初はそれを見つけるのはあまりにも明白でした。

https://openlayers.org/en/latest/apidoc/ol.style.Style.html

ol.style.Style
コンテナスタイルをレンダリングするベクトル機能の。 set *()メソッドを使用してスタイルまたはその子に加えた変更は、そのスタイルを使用するフィーチャまたはレイヤーが再レンダリングされるまで有効になりません。

したがって、レンダリングは設定者によってトリガーされません。

関連する問題