2 votos

Añadir todas las características a una ventana emergente utilizando en Leaflet utilizando WMS GetFeatureInfo

Estoy usando la función de abajo para añadir con éxito los datos a una ventana emergente en Leaflet.

Por desgracia, sólo se añaden los datos de la última característica encontrada. ¿Hay alguna forma de añadir los datos de todas las características encontradas a la ventana emergente?

function identify (e) {

var BBOX = map.getBounds().toBBoxString();
var WIDTH = map.getSize().x;
var HEIGHT = map.getSize().y;
var X = map.layerPointToContainerPoint(e.layerPoint).x;
var Y = map.layerPointToContainerPoint(e.layerPoint).y;
var url = 'http://maps.dartmoor.gov.uk/geoserver/wms/?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&layers=general:dnpa_planapps&BBOX='+BBOX+'&FEATURE_COUNT=5&info_format=application/json&propertyName=appcode,url&HEIGHT='+HEIGHT+'&WIDTH='+WIDTH+'&query_layers=general:dnpa_planapps&SRS=EPSG:4326&buffer=15&X='+X+'&Y='+Y;  

$.ajax({
    url:url,
    datatype: "json",
    type: "GET",
    success:handleJson
    }); 
    function handleJson(data) {
    for (var i = 0; i < data.features.length; i++) {
    var feature = data.features[i];
    console.log(feature)
        L.popup()
        .setLatLng(e.latlng)
        .setContent(L.Util.template("<h2>{appcode}</h2><p>{url}</p>", feature.properties))
        .openOn(map);
        }
    }
}

1voto

Adam Ernst Puntos 6939

Creo que tu bucle debe ser algo así como:

var txt="";
for (var i = 0; i < data.features.length; i++) {
    var feature = data.features[i];
    console.log(feature);
    txt = txt.concat( L.Util.template("<h2>{appcode}</h2><p>{url}</p>", feature.properties));     
 }
 L.popup()
   .setLatLng(e.latlng)
   .setContent(txt)
   .openOn(map);

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