Mais

Solicitação WMS GetMap com filtro CQL featureid


Tenho serviços WMS e WFS disponíveis para mim e estou tentando fazer o seguinte:

Estou tentando identificar imagens (recursos) em um determinado BBOX usando WFS e, em seguida, desejo recuperar as imagens individuais por meio de WMS GetMap com base no featureid da chamada WFS.

A consulta WFS que faço é (URL modificado para ocultar as informações reais do servidor): http://www.wfsserver.com/catalogservice/wfsaccess/REQUEST=GetFeature&typeName=FinishedFeature&SERVICE=WFS&VERSION=1.1.0&BBOX=-73.8854994266476.406.6346117683464 , 40.6501752378911, EPSG: 4326 & WIDTH = 512 & HEIGHT = 512

Meu entendimento da consulta acima:

  • Eu especifico WFS como o serviço e GetFeature como o tipo REQUEST para extrair metadados para os recursos.
  • Eu especifico FinishedFeature como o tipo de recurso do qual obter os dados (este é o nome do tipo de recurso que estou usando).
  • Eu especifico um BBOX para restringir a área da qual desejo extrair os recursos e especifico EPSG: 4326 como o SRS para o BBOX.
  • Width and Height está definido como 512 (não sei como isso afeta nada, pois posso alterar os valores e ainda obter os mesmos resultados).

O que recebo em resposta é um GML de coleção de recursos que lista vários recursos para o BBOX que especifiquei.

   16478949f5fc3c87ba329fcf608085a3      40.81988700000292 -73.95899850000016 40.63913550005475 -73.95894900000025 40.64983200005168 -73.73234250038556 40.83001650000002 -73.7327880003848 40.81988700000292 -73.95899850000016  2015-09-03 17:32:02… e assim por diante

A consulta WMS que faço após a consulta WFS é:

https://www.wmsserver.com/mapservice/wmsaccess/SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&LAYERS=Imagery&FORMAT=image%2Fjpeg&HEIGHT=512&WIDTH=512&SRS=EPSG:4326&BBOX=1.1.1&LAYERS=Imagery&FORMAT=image%2Fjpeg&HEIGHT=512&WIDTH=512&SRS=EPSG:4326&BBOX=-73.60,45,40QL7.46.4q_eat.70,40,40 SQL_450,40QL4.46.46.4q_q_dd =% 27464fd8ace00f7e8de1b0976b51a83042% 27

Meu entendimento da consulta WMS acima:

  • Eu especifico WMS como o serviço e GetMap como o tipo REQUEST para recuperar a imagem.
  • Eu especifico imagens como minha camada (não é o nome que tem, mas é como estou chamando aqui)
  • Eu especifico JPEG como formato de imagem.
  • Eu especifico 512x512 para largura e altura, e esse é o tamanho em que a imagem é retornada.
  • Eu especifico EPSG: 4326 para especificar o SRS para o BBOX.
  • Eu especifico o CQL_FILTER para um filtro featureid e forneço o featureid que obtive da consulta WFS.

Quando executo a consulta sem o CQL_FILTER, obtenho uma imagem. No entanto, a imagem parece ser uma fusão de todas as imagens daquele BBOX fornecido. Achei que especificar CQL_FILTER no featureid me daria uma imagem específica em vez de todas as imagens. Então, quando eu aplico o CQL_FILTER, o que obtenho é uma imagem em branco que é toda branca. Executar todos os recursos e seu ID de recurso por meio do CQL_FILTER me dará uma única imagem em branco para cada um.

Na minha cabeça, o que estou fazendo é muito simples: obter todas as imagens (recursos) dentro de um determinado BBOX usando WFS. Execute os resultados por meio do WMS GetMap com um filtro CQL de featureid para obter todas as imagens individualmente de dentro desse BBOX.

Há algo que estou fazendo que está obviamente errado? Isso pode ser um problema com nosso servidor?


No final, recebi uma resposta do fornecedor um mês depois que paramos de trabalhar no projeto. A resposta do fornecedor foi que eu estava usando letras maiúsculas e minúsculas incorretas nos parâmetros CQL_FILTER. O parâmetro 'featureid' precisava ter um 'i' maiúsculo para que terminasse como 'featureId'. Testei minha consulta WMS original com a alteração de uma única letra e, com certeza, minha consulta WMS original funcionou muito bem.


Não acho que o que você está tentando fazer seja possível dentro de uma interface WMS padrão. Um WMS não tem nenhum conceito de featureid, então você não pode aplicar nenhum filtro baseado em featureid em uma solicitação GetMap. Um WMS tem uma solicitação GetFeatureInfo, mas essa solicitação não opera em um featureid, em vez disso, usa uma coordenada de pixel na imagem retornada em uma solicitação GetMap.


você não pode aplicar bbox e cql_filter na mesma consulta, você deve tentar a ferramenta bbox dentro de cql_filter, mas você não pode especificar os srs da caixa


Assista o vídeo: WebGIS app development using Openlayers-6 u0026 Geoserver-Pt3 Query panel using WMS u0026 WFS service (Outubro 2021).