Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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

 

Pied de page des forums

Powered by FluxBB