Mais

A visibilidade da camada vetorial usando min / maxResolution não está funcionando no Openlayers 2

A visibilidade da camada vetorial usando min / maxResolution não está funcionando no Openlayers 2


Estou usando OpenLayers 2 e Geoserver.
Eu tenho algumas camadas WFS e um OpenStreetMap como Baselayer. Eu quero mudar as camadas vetoriais ' visibilidade em certos níveis de zoom, usando min / maxScale ou min / maxResolution, mas não parece funcionar. No exemplo a seguir, uso apenas uma das camadas como teste.

Meu código usando min / maxScale:

Se eu usar escala mín. / Máx., Nada acontece, as camadas são visíveis em todos os níveis de zoom. Além disso, no console do navegador, vejo que as unidades não mudaram, mesmo que eu tenha especificado "metros" em minhas opções, ainda vejo que "graus" são usados.

Tentei a solução listada aqui: "A visibilidade da camada usando maxscale minscale não funciona" - usando min / maxResolution, mas ainda não funciona.

"maxScale ou minScale não funcionam na camada vetorial (de wfs)" também não funciona.

Meu código usando min / maxResolution:

// Mapa base var osm = new OpenLayers.Layer.OSM ("Mapa OSM simples"); map.addLayer (osm); // Layer var test = new OpenLayers.Layer.Vector ("xName", {estratégias: [new OpenLayers.Strategy.Fixed (), saveStrategy], minResolution: 14.035643, maxResolution: 7.01782148, protocolo: new OpenLayers.Protocol.WFS ( {url: SETTINGS.BASE_URL, featurePrefix: 'xNS', featureNS: "xNS", // extractAttributes: true, featureType: "xName",}), styleMap: new OpenLayers.StyleMap ({"default": new OpenLayers.Style ({"pointRadius": 2, fill: true, fillColor: "# 8d006a", strokeColor: "# 000000", strokeWidth: 0.2})})}); // Adicionar camada map.addLayer (test);

Ao usar min / maxResolution, as camadas não são mais visíveis em nenhum nível de zoom. Eles podem ser vistos no LayerSwitcher, mas não podem ser selecionados. Suponho que em uma determinada resolução (a especificada) eles devem ser visíveis e selecionáveis, mas não é o caso.


Depois de várias horas, finalmente encontrei a resposta. Acontece que a escala no mapa mostra valores diferentes da escala no console do navegador (o que eu acho estranho), então eu estava adicionando os valores errados para min / maxResolution.

Código de trabalho:

var test = new OpenLayers.Layer.Vector ("xName", {estratégias: [new OpenLayers.Strategy.Fixed (), saveStrategy], minResolution: 0,001, maxResolution: 200, protocolo: new OpenLayers.Protocol.WFS ({url: SETTINGS.BASE_URL, featurePrefix: 'xNS', featureNS: "xNS", // extractAttributes: true, featureType: "xName",}),

Assista o vídeo: Curso de Angular - Componente OpenLayers. Mapas OpenSource