Mais

Usando OpenLayers 3 forEachFeatureAtPixel para especificar a camada?


Devo primeiro declarar que minhas habilidades em javascript são quase as mesmas que minhas habilidades em espanhol. Eu mal sei o suficiente para me meter em problemas e então vou procurar ajuda. de qualquer forma, tenho um aplicativo que contém algumas camadas geoJSON. Eu criei uma função map.forEachFeatureAtPixel para atualizar um div com algumas informações.

O problema é que ele olha para todas as camadas e eu só quero que olhe para uma. desta forma, posso criar outra função para obter alguns atributos diferentes de outra camada. Eu olhei a documentação e vi a opção opt_layerFilter, mas não sei como aplicá-la (devido à minha falta de conhecimento de Javascript). Se alguém pudesse me dar uma dica aqui, espero que eu consiga ler a documentação e parar de fazer essas perguntas.

função:

var displayFeatureInfo = function (pixel) {var feature = map.forEachFeatureAtPixel (pixel, function (feature, layer) {return feature;}); var info = document.getElementById ('info'); if (recurso) {info.innerHTML = '

'+ feature.get (' Name ') +'

' + '
API:
'+ feature.get (' API ') +'
' + '
Status:
'+ feature.get (' Status ') +'
' + '
Jurídico :
'+ feature.get (' Legal ') +'
' + '
Nome do site:
'+ feature.get (' Site_Name ') +'
'+' '; } else {info.innerHTML = ''; } if (feature! == destaque) {if (destaque) {featureOverlay.removeFeature (destaque); } if (feature) {featureOverlay.addFeature (feature); } destaque = recurso; }};

Você pode usar oopt_layerFilterargumento paraforEachFeatureAtPixel. Consulte a documentação em http://openlayers.org/en/master/apidoc/ol.Map.html#forEachFeatureAtPixel.

Por exemplo, sevectorLayeré uma referência à camada na qual você deseja detectar recursos, você usará o seguinte:

var feature = map.forEachFeatureAtPixel (pixel, function (feature, layer) {return feature;}, null, function (layer) {return layer === vectorLayer;});

Com esta "função de filtro" camadas que não sãovectorLayerserá filtrado.


Assista o vídeo: Openlayers 6 Tutorial #6 - Layer Switcher (Outubro 2021).