2017-02-04 10 views
0

Я пытаюсь получить информацию из слоя WFS, который содержит несколько перекрывающихся функций. Я использую эту функцию для получения информации, но я получаю juste информацию о верхней функции. Кто-нибудь может мне помочь?получить информацию о перекрывающихся функциях при всплывании с использованием слоя WFS в Openlayers 3

olMap.on('click', function(evt) { 

var feature = olMap.forEachFeatureAtPixel(evt.pixel, function(feature, layer) { 
    return feature; 
}); 
if (feature) { 
    var coordinate = evt.coordinate; 
    var viewResolution = /** @type {number} */ (view.getResolution()); 
    var coord = feature.getGeometry().getCoordinates(); 
    var props = feature.getProperties(); 

    content.innerHTML = '<p><b>City</b>:'+props.nam+'<br> ZIP CODE:'+props.f_code+'</p>'; 
    overlay.setPosition(coordinate); 
} 
else{ 
    overlay.setPosition(undefined); 
} 

ответ

0

Dont вернуть функцию от forEachFeatureAtPixel метода вместо перемещения if кода только этот метод.

olMap.on('click', function(evt) { 

var feature = olMap.forEachFeatureAtPixel(evt.pixel, function(feature, layer) { 

    var coordinate = evt.coordinate; 
    var viewResolution = /** @type {number} */ (view.getResolution()); 
    var coord = feature.getGeometry().getCoordinates(); 
    var props = feature.getProperties(); 

    content.innerHTML = '<p><b>City</b>:'+props.nam+'<br> ZIP CODE:'+props.f_code+'</p>'; 
    overlay.setPosition(coordinate); 
}); 
+0

Правильно не возвращать правдивое значение из 'forEachFeatureAtPixel'. Но ваш код также не решит проблему, так как «innerHTML» содержимого перезаписывается каждой последующей функцией. Результатом будет то, что отображаемая информация относится к нижней функции, а не к верхней функции. – ahocevar

+0

Да, что вы говорите, абсолютно правильно. Но его код работает только с одной функцией. Он не пытается добавлять перекрывающиеся функции в 'content'. Я не уверен, хочет ли он показывать свойства всех перекрывающихся функций или только один. –