Pages: 1
- Sujet précédent - [OpenLayers] BBOX transmise dans l'URL englobant maxExtent - Sujet suivant
#1 Mon 24 October 2011 15:58
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
[OpenLayers] BBOX transmise dans l'URL englobant maxExtent
Bonjour
j'affiche actuellement 2 layers :
-un premier layer de cartographie
-un deuxième layer contenant des données métier
dans les 2 cas les requêtes sont en WMS
pour chacun des layers j'ai la même valeur pour la propriété maxExtent ;
cette valeur est bien prise en compte par le layer cartographie,
mais le 2ème layer n'en tient pas compte et la BBOX transmise par l'URL
(récupérant les données métier) correspond toujours aux limites
de la fenêtre du navigateur ; or si ces limites dépassent le cadre
d'affichage de la géographie, les données métier en dehors du cadre
sont affichées ; l'image jointe montre un exemple de configuration
je n'arrive donc pas à limiter la BBOX de l'URL récupérant les données
métiers aux limites définies par maxExtent;
je précise que je fais un affichage plein écran
voici quelques parties de mon code
par exemple en LambertIIe
Code:
var maxextent = new OpenLayers.Bounds(-2000 ,1200000, 1600000, 2800000);
mon premier layer est déclaré comme suit :
Code:
LayerFond = new OpenLayers.Layer.WMS( "fond", geoserver+'/geocache/wms?', { layers: 'europe', format: 'png' }, { isBaseLayer:true, singleTile:false, maxExtent: maxextent, resolutions: [5000,2500,1000,500,250,100,50,25,10] });
et mon deuxième layer :
Code:
LayerImpacts = new OpenLayers.Layer.WMS( "real time", dataserver+'/cgi-bin/mapserver/mapserv?map=/home/vjc/geo/mapfiles/europe/mapfile-france-time-4i.map', { layers: 'impacts,copyright', format: 'png', transparent: true }, { isBaseLayer:false, singleTile:true, buffer:0, ratio:1, maxExtent: maxextent }); var options = { controls:[ new OpenLayers.Control.PanZoomBar() ], units: "m", minResolution: "auto", maxResolution: "auto", maxExtent: maxextent, projection: 'EPSG:27572' };
puis
Code:
map = new OpenLayers.Map( 'map', options );
comment puis-je résoudre ce problème ?
merci bien
jean-Marie
Hors ligne
#2 Tue 25 October 2011 11:23
- tbonfort
- Participant actif
- Date d'inscription: 11 Oct 2007
- Messages: 87
Re: [OpenLayers] BBOX transmise dans l'URL englobant maxExtent
Bonjour
j'affiche actuellement 2 layers :
-un premier layer de cartographie
-un deuxième layer contenant des données métier
dans les 2 cas les requêtes sont en WMS
pour chacun des layers j'ai la même valeur pour la propriété maxExtent ;
cette valeur est bien prise en compte par le layer cartographie,
mais le 2ème layer n'en tient pas compte et la BBOX transmise par l'URL
(récupérant les données métier) correspond toujours aux limites
de la fenêtre du navigateur ; or si ces limites dépassent le cadre
d'affichage de la géographie, les données métier en dehors du cadre
sont affichées ; l'image jointe montre un exemple de configuration
je n'arrive donc pas à limiter la BBOX de l'URL récupérant les données
métiers aux limites définies par maxExtent;
je précise que je fais un affichage plein écran
voici quelques parties de mon code
par exemple en LambertIIeCode:
var maxextent = new OpenLayers.Bounds(-2000 ,1200000, 1600000, 2800000);mon premier layer est déclaré comme suit :
Code:
LayerFond = new OpenLayers.Layer.WMS( "fond", geoserver+'/geocache/wms?', { layers: 'europe', format: 'png' }, { isBaseLayer:true, singleTile:false, maxExtent: maxextent, resolutions: [5000,2500,1000,500,250,100,50,25,10] });et mon deuxième layer :
Code:
LayerImpacts = new OpenLayers.Layer.WMS( "real time", dataserver+'/cgi-bin/mapserver/mapserv?map=/home/vjc/geo/mapfiles/europe/mapfile-france-time-4i.map', { layers: 'impacts,copyright', format: 'png', transparent: true }, { isBaseLayer:false, singleTile:true, buffer:0, ratio:1, maxExtent: maxextent }); var options = { controls:[ new OpenLayers.Control.PanZoomBar() ], units: "m", minResolution: "auto", maxResolution: "auto", maxExtent: maxextent, projection: 'EPSG:27572' };puis
Code:
map = new OpenLayers.Map( 'map', options );comment puis-je résoudre ce problème ?
merci bien
jean-Marie
c'est le comportement normal d'openlayers, il ne me semble pas qu'il y ait de contournement possible a ce niveau la.
la seule solution que je connaisse si tu veux absolument cacher les données metier en dehors d'une etendue specifiée est de configurer un layer raster, en STATUS default et POSTLABELCACHE true. cette couche affichera un raster dont l'etendue est l'etendue maximale envoyée par openlayers (au moins), et ayant une zone nodata correspondant au maxextent des données metier a afficher. Cette couche aura pour effet de masquer toutes les données en dehors du maxextent defini par la zone nodata.
--
thomas
Hors ligne
#3 Wed 26 October 2011 11:27
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [OpenLayers] BBOX transmise dans l'URL englobant maxExtent
Bonjour
j'ai créé dans le mapfile un layer raster :
Code:
LAYER NAME "raster" DATA "filter.gif" TYPE RASTER STATUS DEFAULT POSTLABELCACHE TRUE END
j'ai procédé de la façon suivante pour afficher l'image :
Code:
var Filter= new OpenLayers.Layer.WMS( "raster", dataserver+'/cgi-bin/mapserver/mapserv?map=/home/vjc/geo/mapfiles/europe/mapfile-france-time-4i.map'', { layers: 'raster', transparent: true }, { isBaseLayer:false, singleTile:true, buffer:0, ratio:1, maxExtent: maxextent }); .... map.addLayers([LayerFond,Filter,LayerImpacts]);
mais le raster ne tient pas compte des limites maxextent,
sa taille, à l'affichage, est démesurée par rapport à la carte
faut-il passer en paramètres ces limites au niveau du layer 'raster' dans le mapfile
ainsi que la projection ?
merci pour votre aide
jean-Marie
Hors ligne
#4 Wed 26 October 2011 12:06
- tbonfort
- Participant actif
- Date d'inscription: 11 Oct 2007
- Messages: 87
Re: [OpenLayers] BBOX transmise dans l'URL englobant maxExtent
Bonjour
j'ai créé dans le mapfile un layer raster :Code:
LAYER NAME "raster" DATA "filter.gif" TYPE RASTER STATUS DEFAULT POSTLABELCACHE TRUE ENDj'ai procédé de la façon suivante pour afficher l'image :
Code:
var Filter= new OpenLayers.Layer.WMS( "raster", dataserver+'/cgi-bin/mapserver/mapserv?map=/home/vjc/geo/mapfiles/europe/mapfile-france-time-4i.map'', { layers: 'raster', transparent: true }, { isBaseLayer:false, singleTile:true, buffer:0, ratio:1, maxExtent: maxextent }); .... map.addLayers([LayerFond,Filter,LayerImpacts]);mais le raster ne tient pas compte des limites maxextent,
sa taille, à l'affichage, est démesurée par rapport à la carte
faut-il passer en paramètres ces limites au niveau du layer 'raster' dans le mapfile
ainsi que la projection ?
merci pour votre aide
jean-Marie
il faut utiliser un format raster géoréférencé (ex. geotiff) et pas du gif qui ne contient pas ce referencement
Hors ligne
#5 Wed 26 October 2011 14:20
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [OpenLayers] BBOX transmise dans l'URL englobant maxExtent
vu que la projection (qui est variable) est passée en paramètre dans l'url,
il faudrait que le geotiff puisse prendre en compte cette variable,
or je pense que sa projection est pré-définie
n'y-t'il pas moyen de passer dans l'URL une BBOX' dont les limites seraient déduite de
l'intersection de la BBOX (rendu par OpenLayers) avec maxextent ?
Hors ligne
#6 Fri 25 November 2011 15:37
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [OpenLayers] BBOX transmise dans l'URL englobant maxExtent
Bonjour
la problématique va être traitée de la manière suivante :
concernant la géographie :
vu qu'il n'est pas possible de "découper" la géographie
aux limites de maxExtent, je vais visualiser ces limites à l'aide d'un polygone
(résultat de la projection des limites en degré)
il n'est donc plus nécessaire de "découper" la géographie ce qui permet
d'ailleurs au client de mieux situer sa région en dézoomant
concernant les données points :
à priori je m'oriente vers un filtre sur les coordonnées des points,
ce filtre étant spécifié dans le mapfile (voir sujet : "Filtre sur les coordonnées d'un point")
Jean-Marie
Hors ligne
Pages: 1
- Sujet précédent - [OpenLayers] BBOX transmise dans l'URL englobant maxExtent - Sujet suivant