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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 27 April 2011 16:35

smile
Participant actif
Date d'inscription: 2 Jul 2009
Messages: 110

[Mapserver/Openlayers]Souci d'affichage

Bonjour à tous,

J'ai un petit souci très basic pour afficher une couche WMS (mapserver) via openlayers.
Apparemment mon WMS fonctionne, j'arrive à l'afficher via Qgis ou gaia sans problème.

Quand d'essai de l'afficher avec OpenLayers, il me ressort de tuiles roses. Je pense que cela doit venir de la projection, car quand j'affiche les coordonnées du curseur, il me sort des coordonnées en WGS84 alors qu'elles devrais être en lambert93.

Désolé de poster une énième fois la question mais là je sèche.

Merci d'avance



Voici mon MAPFILE :

Code:

MAP
  NAME "QGIS-MAP"
  # Map image size
  SIZE 1000 500
  UNITS meters

  EXTENT 9***** 6****** 9***** 6******
  FONTSET '../fonts/fonts.txt'
  PROJECTION
    "init=epsg:2154" 
  END

  IMAGECOLOR 255 255 255
  IMAGEQUALITY 95
  IMAGETYPE png

  OUTPUTFORMAT
    NAME png
    DRIVER 'GD/PNG'
    MIMETYPE 'image/png'
    IMAGEMODE RGBA
    EXTENSION 'png'
  END
  # Legend
  LEGEND
      IMAGECOLOR 255 255 255
    STATUS ON
    KEYSIZE 18 12
    LABEL
      TYPE BITMAP
      SIZE MEDIUM
      COLOR 0 0 89
    END
  END


  WEB
   
    IMAGEPATH '/tmp/'
    IMAGEURL '/tmp/'
    METADATA
        "wms_title" "WMS Demo Server"
        "wms_onlineresource" "http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/apps/xxxx/mapfiles/xxxx.map&"
        "wms_srs" "epsg:2154"
        "wms_format" "image/png"
    END
    


    TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
  END

  LAYER
    NAME 'COMMUNE'
    TYPE POLYGON
    DUMP true
    TEMPLATE fooOnlyForWMSGetFeatureInfo
  EXTENT 9***** 6****** 9***** 6******
    CONNECTIONTYPE postgis
    CONNECTION "dbname='postgis' host=localhost port=5432 user='postgres' password='*****' sslmode=disable"
    DATA 'the_geom FROM "bdtopo"."COMMUNE" USING UNIQUE gid USING srid=2154'
METADATA
  "wms_title" "COMMUNE" 
END
PROJECTION
  "init=epsg:2154"
END
    STATUS OFF
    TRANSPARENCY 100
    
    LABELITEM 'NOM'
    CLASS
       NAME 'COMMUNE' 
       STYLE
         WIDTH 1.26 
         OUTLINECOLOR 0 0 0
       END
     LABEL 
      FONT tahoma
      TYPE truetype
      SIZE 12
      COLOR 0 0 0
      ANGLE 0
      POSITION cc
      FORCE true
      ANTIALIAS true
      PARTIALS true
     END 
    END
  END

et voici ma page html:

Code:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <title>OpenLayers Basic Single WMS Example</title>
    <link rel="stylesheet" href="style.css" type="text/css" />
    <link rel="stylesheet" href="style2.css" type="text/css" />
    <script src="Openlayers/OpenLayers.js"></script>

    <script type="text/javascript">
        var map, layer;
        function init(){
            map = new OpenLayers.Map( 'map' );
            layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
                    "http://localhost/cgi-bin/mapserv.exe?MAP=C:\ms4w\apps\****\mapfiles\****.map&",
                    {layers: 'basic'} );
            map.addLayer(layer);
            map.zoomToMaxExtent();
            
                        
// Set up the footer to display the mouse position
        var footerDiv = document.getElementById("footer");
        var mousePosition = new OpenLayers.Control.MousePosition({div: footerDiv})
        map.addControl(mousePosition);
        
        }
    </script>
  </head>
  <body onload="init()">
    <h1 id="title">Basic Single WMS Example</h1>

    <div id="tags">
        basic, simple, minimal, cleanup
    </div>

    <div id="shortdesc">Show a Simple Map</div>

    <div id="map" class="smallmap"></div>

    <div id="docs">
        This example shows a very simple layout with minimal controls.  This example uses a single WMS base layer.
    </div>
  </body>
</html>

Dernière modification par smile (Wed 27 April 2011 16:52)

Hors ligne

 

#2 Wed 27 April 2011 17:38

jack tippit
Participant actif
Lieu: Limoges
Date d'inscription: 3 Dec 2008
Messages: 116
Site web

Re: [Mapserver/Openlayers]Souci d'affichage

Bonjour a toi,
bon je suis bien loin d'être un expert, je commence OpenLayers, mais je me lance ... il me semble que les tuile rose c'est quand le lien vers la source est cassé...
est-ce que tu arrives a l'afficher en l'appelant directement depuis ton navigateur?
chez moi ça donne ça

Code:

http://localhost/cgi-bin/mapserv?map=/home/loulou/cembra.map&service=WMS&version=1.1.1&request=getmap&layers=hillshase01,hillshaseColor01&srs=EPSG:32632&bbox=665938.372716,5111625.157394,672112.372716,5116322.501883&format=image/png&width=800&height=800

cela doit t'afficher la carte...


ensuite moi par précaution parce que je ne maitrise pas forcement très bien je commence toujours par définir les paramètre généraux de mon affichage un truc du genre

Code:

var options = {
                            //maxExtent et maxResolution fonctionne ensemble si les bornes sont juste la résolution est calcule au vol
                            maxExtent: new OpenLayers.Bounds(666732.26236444,5112445.0894041, 671318.48306756,5115502.5698729),
                            maxResolution: "auto",
                            //le numZoomLevels permet de definir le nombre de palier de zoom
                            //numZoomLevels : 6 ,
                            units: 'm',
                            projection: "EPSG:32632",
                            //displayProjection:"EPSG:25832",
                            //permet une navigation au clavier (fleches et zomm+-) dans la fenêtre carte
                            //controls: [new OpenLayers.Control.KeyboardDefaults()],
                            
                            
                        };
                        
            
            //initiallise une carte, avec les options sus définies :)
            map = new OpenLayers.Map('map',options);

j'espère que ça va t'aider... et que je ne dis pas de bêtises...

Hors ligne

 

#3 Thu 28 April 2011 09:57

smile
Participant actif
Date d'inscription: 2 Jul 2009
Messages: 110

Re: [Mapserver/Openlayers]Souci d'affichage

Salut,

Alors, quand j'utilise le lien directement dans le navigateur ma carte s'affiche bien.

J'ai également paramétré les options de ma carte avec le code que tu ma donné, d'après la position du curseur je suis bien au bon endroit.
Par contre j'ai toujours des tuiles roses! J'ai testé plusieurs façons d'insérer ma layer dans le code HTML, sans résultats.

Hors ligne

 

#4 Thu 28 April 2011 11:00

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

Re: [Mapserver/Openlayers]Souci d'affichage

Bonjour,

Voir ce lien pour débuguer : http://georezo.net/wiki/main/logiciels/ … rs/firebug

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 Thu 28 April 2011 12:12

smile
Participant actif
Date d'inscription: 2 Jul 2009
Messages: 110

Re: [Mapserver/Openlayers]Souci d'affichage

Je viens d'inspecter une tuile avec firebug, et voila ce qu'il en ressort:

Code:

<img id="OpenLayersDiv140" style="width: 256px; height: 256px; position: relative; background-color: pink;" class="olTileImage" src="http://localhost/cgi-bin/mapserv.exe?map=C:ms4wappscccemapfilesccce.map&amp;LAYERS=COMMUNE&amp;SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;STYLES=&amp;EXCEPTIONS=application%2Fvnd.ogc.se_inimage&amp;FORMAT=image%2Fjpeg&amp;SRS=EPSG%3A2154&amp;BBOX=918837.790046,6931547.3726122,925251.72709518,6937961.3096614&amp;WIDTH=256&amp;HEIGHT=256">

Apparemment il y a un souci avec le chemin de mon mapfile : C:ms4wappscccemapfilesccce.map

Si je copie cette adresse dans mon navigateur en ajoutant les slashs dans le chemin du mapfile, il me renvoi bien la tuile!

Je vais test en mettant les slashs (et non des anti-slash comme il y a actuellement) dans le mapfile voir si çà fonctionne...


EDIT: Effectivement c’était bien un problème de slash, mon problème est résolu.
Merci a vous pour votre aide.

Maintenant j'ai un souci au niveau de l'affichage des étiquettes (multiples), mais ceci est un autre problème.

Dernière modification par smile (Thu 28 April 2011 12:16)

Hors ligne

 

#6 Thu 28 April 2011 14:17

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

Re: [Mapserver/Openlayers]Souci d'affichage


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

 

#7 Thu 28 April 2011 16:30

smile
Participant actif
Date d'inscription: 2 Jul 2009
Messages: 110

Re: [Mapserver/Openlayers]Souci d'affichage

Merci pour l'info, ça marche parfaitement.

Es-ce que le fait d'utiliser une tuile unique ne fait pas perde en performance l'application? (ça n'a pas l'air d’être le cas chez moi)

Hors ligne

 

Pied de page des forums

Powered by FluxBB