Pages: 1
- Sujet précédent - [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL - Sujet suivant
#1 Tue 09 March 2010 19:33
- zac
- Participant occasionnel
- Date d'inscription: 16 Apr 2009
- Messages: 27
[MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Bonjour,
Je souhaite afficher une couche PostGis en utilisant la librairie OpenLayers.
Je souhaite utiliser les protocoles WMS et WFS.
Mes mapfiles sont bons car j'arrive à afficher une couche de polygones grace à une requete getmap (wms) et je n'ai pas d'erreurs sur une requete getfeatures (wfs).
Le pb vient surement du code JS. Je pense avoir identifié le pb : la projection. Lorsque j'essaie d'afficher des données en WGS84 (long/lat), je n'ai pas de problème. Lorsque j'utilise des projections type Lambert (unité en mètre), je n'affiche plus rien.
J'utilise Firebug pour essayer de débugger le JS mais je suis encore novice donc je dois mal l'utiliser. Il ne me donne aucune erreur, même en mode script donc je ne sais plus trop ou chercher cela fait plusieurs jours que je galère !
Je vous fournis le code JS :
1) WMS
Code:
<html> <head> <script src="http://openlayers.org/api/OpenLayers.js" type="text/javascript"> </script> <script> function init () { var options = { maxExtent: new OpenLayers.Bounds(30000, 242000, 436000, 646000), maxResolution: "auto", units: 'm', projection: "EPSG:32622" }; var map = new OpenLayers.Map("map", options); wms = new OpenLayers.Layer.WMS( "znieff", "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/tp_openlayers/znieff_wms.map&", { srs: 'EPSG:32622', width: '400', styles: '', height: '300', layers: 'znieff', transparent:"true", format: 'image/png' } ); wms.styleMap = new OpenLayers.StyleMap({strokeColor:"red",fillColor:"green",fillOpacity:0, strokeWidth:2}); map.addLayer(wms); } </script> </head> <body onload="init()"> <div id="map"></div> </body> </html>
2) WFS :
Code:
<html> <head> <script src="http://openlayers.org/api/OpenLayers.js" type="text/javascript"></script> <script> function init () { map = new OpenLayers.Map('map', {maxExtent: new OpenLayers.Bounds(30000, 242000, 436000, 646000), units: "m", maxResolution:"auto", projection : "EPSG:32622"} ); wfs = new OpenLayers.Layer.WFS ( "znieff", "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/tp_openlayers/znieff.map&", {typename: 'znieff' ,SRS:"EPSG:32622"},{ extractAttributes: true}); wfs.styleMap = new OpenLayers.StyleMap({strokeColor:"red",fillColor:"green",fillOpacity:0, strokeWidth:2}); map.addLayer(wfs); map.zoomToMaxExtent(); } </script> </head> <body onload="init()"> <div id="map"></div> </body> </html>
Si vous souhaitez voir les mapfiles, je peux vous les fournir.
Merci d'avance pour votre précieuse aide technique
Hors ligne
#2 Wed 10 March 2010 10:41
- Cornet Jérémie
- Participant assidu
- Lieu: Nouméa
- Date d'inscription: 6 Apr 2008
- Messages: 229
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Salut
Essaie en utlisant
Code:
projection: new OpenLayers.Projection("EPSG:32622")
au lieu de
Code:
projection: "EPSG:32622"
Jérémie
Hors ligne
#3 Wed 10 March 2010 14:12
- zac
- Participant occasionnel
- Date d'inscription: 16 Apr 2009
- Messages: 27
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Bonjour,
Malheureusement cela ne change rien, j'ai toujours un écran blanc.
J'ai regardé de plus près les variables grâce à Firebug. Le maxextent contient bien l'emprise. Pour la projection, j'observe deux variables :
- projCode : 32622 (le code est passé)
- proj : null (je ne sais pas à quoi ça correspond).
J'avoue que je n'ai plus trop d'idée...
Hors ligne
#4 Wed 10 March 2010 14:59
- Cornet Jérémie
- Participant assidu
- Lieu: Nouméa
- Date d'inscription: 6 Apr 2008
- Messages: 229
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Plusieurs pistes :
- bien préciser les projections comme mis ci dessus pour le map et les couches
- vérifier encore les extent (Xmin, Ymin, Xmax, Ymax)
- nettoyer le code du layer wms : plusieurs propriétés parasites dont
Code:
width: '400', styles: '', height: '300'
- enfin, il faut parfois configurer un fichier proxy sur son serveur mais là je te laisse chercher de la doc !
Hors ligne
#5 Wed 10 March 2010 15:19
- zac
- Participant occasionnel
- Date d'inscription: 16 Apr 2009
- Messages: 27
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Merci pour les pistes !
Mes extent sont bons et j'ai nettoyé le code JS.
Côté proxy, je ne sais pas si c'est nécessaire car je travaille en local. Toutefois, étant donné que je suis en entreprise, un serveur proxy est utilisé. Reste à savoir si le serveur apache en local y est soumis.
Je vais plancher de ce côté la.
Demain, je vais également amener mon ordinateur personnel et réessayer.
Je te tiens au courant et merci encore pour ton aide
Hors ligne
#6 Fri 12 March 2010 10:06
- Mac_Ad
- Juste Inscrit !
- Lieu: Maisons-Alfort
- Date d'inscription: 13 Dec 2008
- Messages: 9
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Bonjour,
J'ai eu le même problème que toi avec des couches Geoserver. Le problème venait tout d'abord du proxy ; il faut en installer un même en local si on veut afficher des WFS. Voir ici : http://trac.openlayers.org/wiki/Frequen … #ProxyHost
Ensuite peut être un problème de projection en effet, mais ton code à l'air juste. Tu peux essayer avec une "var options" pour le WFS (comme tu as fait pour le WMS) ; c'est comme cela que j'ai fonctionné pour ma part.
Sinon personnellement, je n'arrive pas à afficher un WFS seul, sans WMS en fond.
Hors ligne
#7 Fri 12 March 2010 11:33
- Cornet Jérémie
- Participant assidu
- Lieu: Nouméa
- Date d'inscription: 6 Apr 2008
- Messages: 229
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Pour le WFS seul, il est définit comme baselayer ?
Hors ligne
#8 Fri 12 March 2010 13:36
- Mac_Ad
- Juste Inscrit !
- Lieu: Maisons-Alfort
- Date d'inscription: 13 Dec 2008
- Messages: 9
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Pour le WFS seul, il est définit comme baselayer ?
Merci, il me manquait cet élément ! Il s'affiche maintenant !
Hors ligne
#9 Fri 12 March 2010 16:59
- zac
- Participant occasionnel
- Date d'inscription: 16 Apr 2009
- Messages: 27
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
J'ai eu le même problème que toi avec des couches Geoserver. Le problème venait tout d'abord du proxy ; il faut en installer un même en local si on veut afficher des WFS.
Pas besoin pour le WMS ?
Sinon je n'arrive toujours pas à afficher une simple couche en WMS ça commence à me rendre fou.
J'ai un message d'erreur de Firebug : "bounds is null - var center = getCenterLonLat()". Au moment où il veut faire le zoomToMaxExtent, il ne retrouve justement plus ces extent. Pourtant cela a bien été stocké dans la variable options (je le vois quand je mets un point d'arrêt et que je parcours le code pas à pas". J'ai l'impression qu'il "perd ces données" quand on avance dans le script c'est vraiment bizarre.
J'ai essayé de déclarer un new OpenLayersLonLat pour palier au problème du getCenterLonLat mais ça ne marche pas.
Je pense qu'avec ce message d'erreur vous allez pouvoir m'aider
Merci encore
Hors ligne
#10 Fri 12 March 2010 18:13
- Mac_Ad
- Juste Inscrit !
- Lieu: Maisons-Alfort
- Date d'inscription: 13 Dec 2008
- Messages: 9
Re: [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL
Pas besoin de proxy pour les WMS (en tout cas par Geoserver).
Il m'arrive souvent d'avoir cette erreur de "bounds", et c'est souvent une erreur de syntaxe apparue à force de modifier le code...
Hors ligne
Pages: 1
- Sujet précédent - [MapServer/OL/PostGis] Problème affichage couche PostGis dans OL - Sujet suivant