Pular para o conteúdo principal

Questão de Programação — Web — FGV 2025

ProgramaçãoWeb
Código
fg107891
Banca
FGV
Órgão
CPRM
Ano
2025
Nível
Superior
Cargo
Analista em Geociências - Geoprocessamento
Durante o desenvolvimento de um sistema web de monitoramento ambiental, é necessário implementar uma função que destaque feições de uma camada vetorial ao clicar em um ponto do mapa.A opção que implementa corretamente esse comportamento no OpenLayers é
  1. Aconfigurar um ol.interaction.Select com condition: click e usar getFeatures() para obter a feição.
  2. Busar ol.source.TileWMS com style: selected e click:true.
  3. Cdefinir zIndex da camada como alto e capturar eventos com ol.Map.on('click').
  4. Dalterar o atributo visible=false da camada vetorial.
  5. Eusar ol.source.ImageWMS com onClickFeature().
Revelar gabarito e comentário

GabaritoA — configurar um ol.interaction.Select com condition: click e usar getFeatures() para obter a feição.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

OpenLayers: interação de seleção em camada vetorial

Gabarito: letra A. A alternativa A descreve corretamente a forma de destacar feições ao clicar em um ponto do mapa no OpenLayers: configurar um ol.interaction.Select com condition: 'click' e utilizar o método getFeatures() para obter a feição selecionada. Essa interação é a abordagem padrão da biblioteca para seleção interativa.

Alternativa A — ✅ Correta ⟵ GABARITO

A interação ol.interaction.Select permite que o usuário clique em uma feição de uma camada vetorial e a destaque. Ao definir condition: ol.events.condition.click (ou simplesmente 'click'), ela reage ao clique. O método getFeatures() retorna uma coleção das feições selecionadas, possibilitando manipulá-las (ex.: mudar estilo, exibir dados).

Alternativa B — ❌ Incorreta

ol.source.TileWMS é uma fonte para camadas de tiles (imagens) provenientes de servidores WMS, não para dados vetoriais. Não possui propriedades style: selected ou click: true. Não é possível selecionar feições vetoriais diretamente por essa fonte.

Alternativa C — ❌ Incorreta

Aumentar o zIndex da camada apenas altera a ordem de desenho, não permite seleção. Capturar eventos com ol.Map.on('click') pode detectar o clique, mas por si só não destaca a feição; seria necessário código adicional para identificar a feição sob o clique (usando ol.Map.forEachFeatureAtPixel), o que torna a alternativa incompleta e menos direta que a interação Select.

Alternativa D — ❌ Incorreta

Alterar visible=false oculta completamente a camada vetorial, o oposto do que se deseja (destacar a feição). Não há seleção ou destaque.

Alternativa E — ❌ Incorreta

ol.source.ImageWMS é uma fonte para imagens WMS, não para vetores. Não existe método onClickFeature() na API padrão do OpenLayers. Essa alternativa mistura conceitos de fontes de imagem com interação vetorial.

PEGA ESSA DICA!

No OpenLayers, para interagir com feições vetoriais (selecionar, modificar, desenhar), utilize as interações disponíveis em ol.interaction. A ol.interaction.Select é a mais comum para cliques. Lembre-se de que camadas vetoriais usam ol.source.Vector ou ol.source.VectorTile — jamais TileWMS ou ImageWMS, que são para dados raster.

Link permanente: /questoes/fg107891