7 votos

¿Cómo diseñar una función LineString para que sea de color rojo?

Intento agregar entidades con geometrías LineString en diferentes colores a un ol.source.Vector.

Intenté hacer esto con el siguiente código:

 var myFeature = new ol.Feature({
   geometry : new ol.geom.LineString(coordinates),
   style : new ol.style.Style({
       stroke : new ol.style.Stroke({color : "red"})})
});
mySource.addFeature(myFeature);
 

Las coordenadas se transforman correctamente. La función LineString resultante se muestra en la posición correcta en el mapa, pero no en rojo.

¿Qué estoy haciendo mal?

5voto

ahocevar Puntos 1460

No puede simplemente establecer un estilo como propiedad de característica y esperar que funcione. Si establece propiedades en el constructor, serán propiedades de la característica. Puede usar setStyle() en la función después de construir la función:

 var myFeature = new ol.Feature({
  geometry: myGeometry,
});
myFeature.setStyle(myStyle);
 

o puede configurar la capa vectorial con una función de estilo que selecciona el atributo de estilo de la característica:

 new ol.layer.Vector({
  style: function(feature, resolution) {
    return feature.get('style');
  }
})
 

2voto

Frank Lowney Puntos 11

En lugar de "rojo" en su línea de trazo, use el valor RGB de rojo: 255,0,0

 var myFeature = new ol.Feature({
   geometry : new ol.geom.LineString(coordinates),
   style : new ol.style.Style({
       stroke : new ol.style.Stroke({color : 255,0,0
    })
   })
 });
mySource.addFeature(myFeature);
 

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X