2015-01-17 3 views
5

Sto cercando di impostare l'opacità di riempimento di una funzione vettoriale in OL3 e non riesco a capire come farlo se ho un valore esadecimale ... I ' Ho visto esempi con rgba. Eventuali suggerimenti?Impostazione dell'opacità riempimento carattere vettoriale quando si dispone di un colore esadecimale

Ecco quello che ho:

style : function(feature, resolution) { 
      return [new ol.style.Style(
      { 
      stroke : new ol.style.Stroke(
      { 
       color : feature.get('color'), 
       width : 2 
      }), 
      fill : new ol.style.Fill(
      { 
       color : feature.get('color'), //'#FF0000' 
       opacity : 0.2 // I thought this would work, but it's not an option 
      }) 
      })] 
     } 

risposta

9

È possibile utilizzare la funzione ol.color.asArray. Quella funzione converte le stringhe di colore in matrici di colori.

Quindi questo è ciò che è possibile utilizzare:

var hexColor = feature.get('color'); 
var color = ol.color.asArray(hexColor); 
color = color.slice(); 
color[3] = 0.2; // change the alpha of the color 

slice() viene utilizzato per creare un nuovo array di colore. Questo per evitare di danneggiare la cache "stringhe di colori per matrici di colori" mantenuta dalla funzione ol.color.asArray.

Vedere http://openlayers.org/en/master/apidoc/ol.color.html?unstable=true#asArray.

3

Questo è in ritardo ma potrebbe aiutare qualcuno. È inoltre possibile utilizzare la proprietà rgba.

fill: new ol.style.Fill({color: 'rgba(255, 255, 0, 0.63)'}),