1 votos

Obtener el nombre de la capa cuando hago clic en ella con openlayers 3

Tengo una duda, necesito hacer más de un GetFeatureInfo (obtención de información bajo la capa que se pincha), y para ello necesito el nombre de la capa sobre la que pincho para obtener la información.

¿Alguien sabe cómo obtener el nombre de esta capa?

Este es mi código getFeatureInfo:

map.on('click', function(evt) {
          var pixel = map.getEventPixel(evt.originalEvent);

          var url = WMS2.getSource().getGetFeatureInfoUrl(
              evt.coordinate, viewResolution, 'EPSG:3857',
              {'INFO_FORMAT': 'application/json',
               'propertyName': 'referencia'});

          if (url) {
            var parser = new ol.format.GeoJSON();
             $.ajax({url: url,

                    dataType: 'json',
                    success:function(response) {

              var result = parser.readFeatures(response);

              if (result.length) {
                var info2 = [];
                for (var i = 0, ii = result.length; i < ii; ++i) {
                  info2.push(result[i].get('referencia'));
                }
                document.getElementById("Getfeatureinfo").value = info2;

              } else {
                document.getElementById("Getfeatureinfo").value = info2;

              }
            }});

1voto

Giulio Muscarello Puntos 150

No se puede obtener directamente el nombre de las capas. Pero la primera columna de cada capa tiene el nombre de la capa.feature_id

Intenta parsear el json y obtener la primera columna en una cadena a continuación, utilizando la función string.split

for(var i in result.features){
    var id = result.features[i].id;
    var layer_name = id.split(".")[0];
}

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