2016-10-17 1 views
0

読んでいただきありがとうございます。OpenLayers3の行にグラデーションを追加する

私はLineStringを、様々なグラデーションとして理想的に表現された一連の異なるスタイルのセグメントとして描画することを任されています。

問題が発生しても表示されず、グラデーションとしてレンダリングされるだけです。レイヤーのスタイル関数については、新しいスタイルの配列を作成し、それにスタイルを返します。

ストロークのあるスタイルを使用すると、すべてが素晴らしいレンダリングを行います。塗りつぶしを追加すると(単一の色で単純な塗りつぶしさえも)塗りつぶしが表示されません。

私はここで多くの自由度と自由度を持っているので、LineStringを使用するのが間違っている場合は、別の方向に進むことができます。

もう一度、助けていただければ幸いです。

+0

です:このように 。各セグメントを別の色で表示するには、色を調整できるスタイル関数で解釈できるプロパティをプロパティに追加します。塗りつぶしが必要な場合は、ポリゴンマップレイヤーを試してみてください。 – GoinOff

+0

スタイルの 'geometryFunction'を使用して、個々の線分を別々にレンダリングすることができます。各セグメントには、1つのスタイルが必要です。 'geometryFunction'はスタイルごとに異なる線分を返します。 – ahocevar

答えて

0

塗りを追加する代わりに、線にストロークスタイルの配列を配置します。 1つは内側(塗りつぶし)、もう一方は外側(ストローク)です。ここで

var styles = [ 
       new ol.style.Style({ 
        stroke: new ol.style.Stroke({ 

         color: "#000000", 
         width: 10 
        }) 

       }), 
       new ol.style.Style({ 
        stroke: new ol.style.Stroke({ 

         color: "#ff0000", 
         width: 6 
        }) 
       }) 
    ]; 

は、私はよく分からないが、私はフィルがラインストリングでは動作しないと思うだろう効果を確認するためにfiddle(ちょうどあなたの地図上に線を引く)

関連する問題