Suite

La visibilité de la couche vectorielle à l'aide de min/maxResolution ne fonctionne pas dans Openlayers 2


J'utilise OpenLayers 2 et Geoserver.
J'ai quelques couches WFS et un OpenStreetMap comme couche de base. Je veux changer les calques vectoriels' visibilité à certains niveaux de zoom, en utilisant min/maxScale ou min/maxResolution, mais ça n'a pas l'air de fonctionner. Dans l'exemple suivant, j'utilise un seul des calques comme test.

Mon code en utilisant min/maxScale :

Si j'utilise l'échelle min/max, rien ne se passe, les calques sont visibles à tous les niveaux de zoom. De plus, dans la console du navigateur, je vois que les unités n'ont pas changé, même si j'ai spécifié "mètres" dans mes options, je vois toujours que "degrés" sont utilisés.

J'ai essayé la solution répertoriée ici: "La visibilité des couches à l'aide de maxscale minscale ne fonctionne pas" - en utilisant min/maxResolution, mais cela ne fonctionne toujours pas.

"maxScale ou minScale ne fonctionnent pas dans la couche vectorielle (depuis wfs)" ne fonctionne pas non plus.

Mon code en utilisant min/maxResolution :

//Basemap var osm = new OpenLayers.Layer.OSM("Simple OSM Map"); map.addLayer(osm); //Layer var test = new OpenLayers.Layer.Vector("xName", { stratégies : [new OpenLayers.Strategy.Fixed(), saveStrategy], minResolution : 14.035643, maxResolution : 7.01782148, protocole : 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 }) }) }); //Ajouter une couche map.addLayer(test);

Lorsque vous utilisez min/maxResolution, les calques ne sont plus visibles à aucun niveau de zoom. Ils peuvent être vus sur le LayerSwitcher mais ne peuvent pas être sélectionnés. Je suppose qu'à une certaine résolution (celle spécifiée), ils devraient être visibles et sélectionnables, mais ce n'est pas le cas.


Après plusieurs heures, j'ai enfin trouvé la réponse. Il s'avère que l'échelle sur la carte affiche des valeurs différentes de l'échelle de la console du navigateur (ce que je trouve étrange), j'ajoutais donc les mauvaises valeurs à la résolution min/max.

Code de travail :

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


Voir la vidéo: How To Create Google Maps API KEY For Free Easy Steps By Steps Instructions 4K (Octobre 2021).