Mais

Geoserver WMS Circle SLD estilo retorna círculo incompleto com níveis de zoom mais altos

Geoserver WMS Circle SLD estilo retorna círculo incompleto com níveis de zoom mais altos


Estou usando o OpenGeo Suite Boundless v2.6

Eu criei um estilo SLD para uma camada de pontos e criei 2 regras:

  • Regra para desenhar um ícone gráfico do arquivo PNG.
  • Regra para desenhar um círculo com raio (tamanho) da tabela db usando o valor (Atributo OGC) em metros.

Eu uso o seguinte código para carregar a camada em OL3:

var wmsSource = new ol.source.TileWMS ({url: 'http: // localhost: 8080 / geoserver / wms', params: {'TILED': true, VERSION: '1.3.0', 'LAYERS': 'myds : antena ',}, serverType:' geoserver '}); novo ol.layer.Tile ({id: 'Message', title: 'Antennas', visible: true, source: wmsSource});

A camada carregada corretamente no mapa em alguns níveis de zoom mais baixos (0-10) se eu aumentar o zoom para mais níveis abaixo (11-17), a forma do círculo é cortada pelos blocos como na imagem abaixo:

O estranho quando eu defino a 2ª regra no SLD que para obter um valor de raio fixo como (2000) metros - não da tabela db -, ele desenha um círculo completo em todos os níveis de zoom, mas preciso definir um raio diferente cada círculo.

Tentei várias soluções para evitar esse erro, alterando os fatores de metatiling para 100x100 em vez de 4x4 e alterando a calha para 100px, isso resolve o problema, mas afeta a velocidade de carregamento mal.

Então, gentilmente me ajude a resolver este problema.


Após aplicar a sugestão do iant postando um bug no Geoserver no seguinte link Geoserver Issue

mas a primeira resposta foi:

Isso não é um bug, o GeoServer não pode prever quão grande será o círculo, pois é dependente de atributos. Você deve configurar manualmente um buffer de renderização grande o suficiente para atender a todas as suas necessidades na configuração da camada: http://docs.geoserver.org/2.7.1/user/webadmin/data/layers.html

Outra resposta é usar ol.source.ImageWMS** ao invés de usar **ol.source.TileWMS ' que retornará a resposta WMS em UMA Única Imagem sem imagem lado a lado para que os círculos não sejam cortados como a imagem anexada anteriormente.

Tentei esta resposta e o círculo incompleto desapareceu e o resultado são círculos completos com o raio selecionado do atributo DB.

Portanto, a conclusão é:

  • Usar ol.source.ImageWMS se você deseja carregar a resposta WMS em uma única imagem lado a lado - não imagens lado a lado -.

Eu queria compartilhar a solução com qualquer pessoa que enfrente esse problema.


Assista o vídeo: Creating WMS with GeoServer on OSGeo Live Virtual Machine