Je suis allé là-bas toute la journée et honnêtement, je n'ai plus d'idées. J'ai quelques couches WMS que je voudrais afficher/ne pas afficher en fonction du niveau de zoom actuel. Oui, j'ai parcouru les documents API et ils semblent être clairs comme le jour, mais je suis tout ce qui est suggéré et je n'obtiens pas les résultats souhaités :(Afficher le calque WMS en fonction du niveau de zoom
Ceci a été l'une des sources que j'ai regardé Ensuite, pour aggraver les choses, j'ai découvert que si vous avez une couche de base Open Street Map en charge, cela semble limiter votre contrôle sur les numZoomLevels de la carte, tout ce que je avais besoin, car je ne veux l'utiliser comme ma couche de base de chargement ...
Mes questions sont les suivantes:
Qu'est-ce que je fais mal? Est-il vrai qu'il n'existe pas de solution de contournement pour contrôler les niveaux de zoom lors de l'utilisation d'une couche de base Open Street Map en charge? Ou y a-t-il quelque chose que je ne sais pas?
Voici quelques-unes de mes tentatives de code: Prenez 1: le calque tib_villages ne devrait s'afficher que lorsque le niveau de zoom est de 8-10, ne fonctionne pas!
var options = {
controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
units: 'm',
numZoomLevels: null, //setting the map's zoom levels to null
allOverlays: false
}
var osm = new OpenLayers.Layer.OSM(); //MY base layer
//MY overlay layer
var tib_villages = new OpenLayers.Layer.WMS(
"Villages", "http://localhost:8080/geoserver/wms", {layers: 'cite:tib_villages', transparent: true, numZoomLevels: 10, minZoomLevel: 8}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
);
Take 2: couche de tib_villages ne doit montrer que le niveau de zoom est de 8-10, la carte ne devrait avoir 10 niveaux de zoom, mais a 19 comme la couche Open Street Map, il applique à, ne fonctionne pas !
var options = {
controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
units: 'm',
numZoomLevels: 10, //setting the map's zoom levels to 10 only
allOverlays: false
}
var osm = new OpenLayers.Layer.OSM(); //MY base layer
//MY overlay layer
var tib_villages = new OpenLayers.Layer.WMS(
"Villages", "http://localhost:8080/geoserver/wms", {layers: 'cite:tib_villages', transparent: true, numZoomLevels: null, minZoomLevel: 8}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
)
; Prendre 3: Après avoir éliminé la couche de base Open Street Map en charge, la carte n'a que 10 niveaux de zoom comme spécifié, mais la couche tib_villages ne devrait s'afficher que lorsque le niveau de zoom est de 8-10, ne fonctionne pas!
var options = {
controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
units: 'm',
numZoomLevels: 10, //setting the map's zoom levels to 10
allOverlays: false
}
//MY overlay layer
var tib_villages = new OpenLayers.Layer.WMS(
"Villages", "http://localhost:8080/geoserver/wms", {layers: 'cite:tib_villages', transparent: true, numZoomLevels: 10, minZoomLevel: 8}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
);
Toutes vos suggestions sont sincèrement appréciées!
elshae
** @ elshae **: J'adresserais ta question sur http://gis.stackexchange.com/ ou sur la liste de diffusion * [email protected]*. – Chau
Hmm Je vais aller voir gis.stackexchange.com et je poste sur [email protected].org, mais je n'obtiens souvent aucune réponse: -/ – elshae