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é ?

#1 Mon 30 January 2012 17:55

phil008
Participant occasionnel
Date d'inscription: 10 Sep 2011
Messages: 23

Mapserver et Openlayers via WMS, carrés roses...

Bonjour,

j'ai du mal à faire marcher OpenLayers avec Mapserver via WMS, je n'ai que des carrés roses...
firebug ne m'indique aucune erreur au niveau du javascript. Qu'est ce qui ne va pas?

mon code html:

Code:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>MapServer Layer</title>
    <link rel="stylesheet" href="../OpenLayers-2.11/theme/default/style.css" type="text/css" />
    <script src="../OpenLayers-2.11/lib/OpenLayers.js"></script>
    <script type="text/javascript">
    

function init(){

var map = new OpenLayers.Map( 'map' );

var macarte = new OpenLayers.Layer.WMS( "projet01",
    "http://localhost/cgi-bin/mapserv?",
    {map: '/var/www/test/mapfile.map', layers: 'pays, routes'}
    );

map.addLayer(macarte);

map.addControl( new OpenLayers.Control.LayerSwitcher() );
map.zoomToExtent(new OpenLayers.Bounds(-180, -90, 180, 90));

}

    </script>
  </head>
  <body onload="init()">
    <h1 id="title">MapServer Layer</h1>
    <div id="tags"></div>
    <div id="shortdesc">Shows MapServer Layer</div>
    <div id="map" class="smallmap"></div>
    <div id="docs">
    Blablabla...
    </div>
  </body>
</html>

mon mapfile:

Code:

MAP
  IMAGETYPE        PNG
  EXTENT             -25.3 -34.8 57.7 37.3
  SIZE                  400 300
  SHAPEPATH        "/var/www/test"
  IMAGECOLOR     255 255 255

  WEB
    METADATA
      "wms_title"     "projet01"
      "wms_onlineresource" "http://localhost/cgi-bin/mapserv?"
      "wms_srs"       "EPSG:4326"
      "wms_enable_request" "*"
    END
  END

LAYER
    NAME        pays
    DATA         pays.shp
    TYPE         Polygon
    STATUS     ON
METADATA
  "wms_title" "pays"
END
PROJECTION
  "init=epsg:4326"
END
  CLASS
    NAME       "NAME"
  STYLE
    COLOR                232 232 232
    OUTLINECOLOR     32 32 232
  END
 END
END

LAYER
    NAME        routes
    DATA         routes.shp
    TYPE         line
    STATUS     ON
METADATA
  "wms_title" "routes"
END
PROJECTION
  "init=epsg:4326"
END
  CLASS
    NAME       "NAME"
  STYLE
    COLOR                1 1 1
  END
 END
END
END

Merci d'avance.

Dernière modification par phil008 (Tue 31 January 2012 16:27)

Hors ligne

 

#2 Tue 31 January 2012 15:03

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: Mapserver et Openlayers via WMS, carrés roses...

Bonjour,
Il te manque plusieurs choses dans le mapfile au moins : une chaine de connexion à ta bdd dans le layer, de même que l'extent en entête doit correspondre en coordonnées à la zone géographique que tu dois afficher.

Hors ligne

 

#3 Tue 31 January 2012 16:17

phil008
Participant occasionnel
Date d'inscription: 10 Sep 2011
Messages: 23

Re: Mapserver et Openlayers via WMS, carrés roses...

Merci de ta réponse:

Par "chaine de connexion à ta bdd" est ce que tu parles de Postgis? Parceque je n'utilise pas Postgis mais de simples fichiers Shapefile (pays.shp et route.shp).

Par rapport à l'extent j'ai corrigé et utilisé dans le fichier HTML la même extent que dans le mapfile (en prenant soin d'intervertir les chiffres car sous OL contrairement à Mapserver la longitude est placée avant la latitude). Malheureusement j'ai toujours le même résultat: des carrés roses.

Je précise que mon mapfile semble ok, car quand j'utilise l'utilitaire shp2img pour tester le mapfile, j'obtiens bien une image de ma carte.

Il doit il ya avoir un probleme au niveau de la connexion WMS. Est ce qu'il faut ouvrir le fichier HTML avec une adresse URL contenant des paramètres particuliers (comme avec mapserver CGI) ou on peut l'ouvrir simplement en double-cliquant ?

Hors ligne

 

#4 Sun 05 February 2012 16:04

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: Mapserver et Openlayers via WMS, carrés roses...

Bonjour,

Que donne la requête suivante (à adapter) :

http://localhost/cgi-bin/mapserv?map=/var/www/test/mapfile.map&ERSION=1.3.0&SERVICE=WMS&REQUEST=GetCapabilities ?

Dans ton code OpenLayers, modifie cette partie :

var macarte = new OpenLayers.Layer.WMS( "projet01",
    "http://localhost/cgi-bin/mapserv?map=/var/www/test/mapfile.map&",
    {layers: 'pays, routes'}
    );


Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Tue 07 February 2012 19:56

phil008
Participant occasionnel
Date d'inscription: 10 Sep 2011
Messages: 23

Re: Mapserver et Openlayers via WMS, carrés roses...

Bonsoir,

La requête par URL marche et me renvoie bien une image. En fait j'ai découvert par hasard qu'il faut rajouter "wms_srs"  "EPSG:4326" dans le bloc metadata du layer et là j'obtiens l'image. Puis j'ai testé vôtre code javascript mais j'ai toujours ces fameux carrés roses.

En fait, après de nombreux tests, la bonne définition semble être : var macarte = new OpenLayers.Layer.WMS("essai","http://localhost/cgi-bin/mapserv?", {map: '/var/www/test/mapfile.map', transparent: 'TRUE', layers: 'pays', srs: 'EPSG:3857'}, {'reproject': true}); en effet, j'ai bien mes shapefiles qui s'affichent sous Openlayers. ça reste un peu mystérieux pour moi mais l'essentiel c'est que ça roule. Un truc que je comprends pas bien encore c'est que je ne peux pas citer plus d'une couche à la fois dans 'layers: ', sinon ça remet des carrés roses. Je dois créer autant de variables WMS qu'il y a de couches. Enfin bon...

Merci de vôtre aide.

EDIT: autre bug que je ne comprends pas, quand je zoome tout va bien, mais quand je dézoome à fond il y a un gros décalage entre mon shapefile et la couche google map (voir ma capture d'écran ici: http://hfr-rehost.net/fullsize/http://s … a9439.jpeg). Pourtant mon shapefile est bien en google mercator. Si quelqu'un à une explication...

Dernière modification par phil008 (Tue 07 February 2012 20:34)

Hors ligne

 

Pied de page des forums

Powered by FluxBB