Я работаю над OpenLayers 3 с Geoserver, у меня есть четыре векторных слоя, я использую событие singleclick
, чтобы получить свойства для каждой функции и показать их во всплывающем окне ,Получить свойства свойств для слоя, который был нажат в OpenLayers 3
Теперь моя проблема в том, что когда я нажимаю на функцию с самого высокого уровня, я получаю все свойства из всех слоев, которые ниже, я использовал forEachFeatureAtPixel
, но я не знаю, как указать его для каждого слоя!
Вот мой код:
var OpenMeters = function (evt) {
content.innerHTML = "";
var feature = map.forEachFeatureAtPixel(evt.pixel,
function (feature, layer) {
if (feature) {
var coord = map.getCoordinateFromPixel(evt.pixel);
var objeto = feature.getProperties(),propiedades;
for (propiedades in objeto)
{
content.innerHTML += '<b>' + propiedades + '</b> : <i><b>'+ objeto[propiedades]+'</b></i><br />';
}
overlay.setPosition(coord);
} else {
overlay.setPosition(undefined);
}
});
};
map.on('singleclick', OpenMeters);
var select = new ol.interaction.Select();
map.addInteraction(select);
Как я могу указать singleclick
событие для каждого слоя? Любая помощь?
по крайней мере, для меня, это не ясно, что вы хотите. Может быть, вам нужен фильтр слоя? См. Http://gis.stackexchange.com/a/127072/50718. –
Я видел это и пробовал ... но он дает мне свойства только для слоя, который я вложил в фильтр, и если я нажму на другой слой, он не даст никаких свойств. В том же пикселе, который я нажимаю, у меня есть три функции друг под друга, что я хочу, когда я нажимаю на функцию с самого высокого уровня, чтобы дать мне свойства этой функции только в этом слое, а не все предопределения для функций в пикселе, так понятно ? – Sheyar
Не совсем. Возможно, вы положили это на скрипку. –