2 votos

¿forEachFeatureAtPixel no limita las características?

Estoy tratando de limitar las características devueltas cuando hago clic en el mapa a sólo los de la capa endPoint:

    endPoint = new ol.layer.Vector({
            source: new ol.source.Vector({
                features: endPoints //add an array of features
            }),
        });
    map.addLayer(endPoint)

Lamentablemente, antes de que esta capa se inicialice, al hacer clic en las características de otras capas se registran en la consola. Creo que estoy utilizando la sintaxis correcta para limitar las características a sólo los de la capa endPoint ( forEachFeatureAtPixel(pixel, callback, opt_this, opt_layerFilter, opt_this2) ), pero debo de estar haciendo algo mal: si intento devolver capa en lugar de característica, me da un valor nulo.

¿Se trata de que tengo que dar algún nombre a la capa?

    map.on('click', function(evt) {
      var pixel = map.getEventPixel(evt.originalEvent);
      var mapFeature = map.forEachFeatureAtPixel(pixel, function(feature, layer) {
          return feature;
            }, null, function(layer) {
                     return layer === endPoint;
            });
      console.log(mapFeature)
      })

1voto

Yo hago mi función de información de esta manera.

wmsLayer09 es la capa en la que quiero que el clic busque características, por lo que sólo obtengo características de esa capa

var feature = map.forEachFeatureAtPixel(evt.pixel,
       function (feature, wmsLyr09) {
          return feature;
       });

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