Processing math: 100%

8 votos

Añadir la etiqueta del nombre de las propiedades o el identificador a una característica

Soy nuevo en OpenLayers 3 y estoy tratando de añadir una propiedad (id, nombre o etiqueta) a una característica para recuperarla al hacer clic más tarde, para identificar esa característica en particular.

¿Es posible?

Todavía no he encontrado ninguna respuesta haciendo esto. Algo así como:

var point_feature1 = new ol.Feature({ }); 
point_feature1.setProperties('description', "description 1");
point_feature1.setId(666);
...

Y luego onclick:

map.on('singleclick', function(evt) {             
  var feature = map.forEachFeatureAtPixel(evt.pixel,
    function(feature, layer) {
      console.log("feature",feature.getId());
      return [feature, layer];   
    });                                                           
});

17voto

user3514031 Puntos 6

Tiene un error en la forma de utilizar el setProperties método. Está pensado para establecer múltiples propiedades a la vez y toma un objeto como entrada, que contiene una lista de pares clave-valor:

point_feature1.setProperties({'name':'abcd', 'description':'xyz'})

El set se utiliza para establecer una propiedad a la vez:

point_feature1.set('name', 'abcd')

Con cualquiera de los dos métodos, se puede recuperar el nombre/descripción con el método get:

point_feature1.get('name');

La forma en que está utilizando setId y getId se ve bien.

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