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 Tue 06 August 2013 20:02

zinat
Participant occasionnel
Date d'inscription: 6 Aug 2013
Messages: 31

MapServer comme serveur WMS avec OpenLayers

Bonjour à tous les géomaticiens ;
je travaille avec Mapserver 6.0.3(MS4W) et OpenLayer 2.3.1 sous Windows 7 ,je veux afficher dans une page html une couche shp déclaré dans le fichier map du mapserver .

mais je reçois une page blanche pourtant j'arrive à afficher des couches du serveur WMS géosignal  ,mais mes propres couches j'arrive pas à les afficher via la page html ,j'ai donc configuré le fichier map comme suit

Code:

MAP
  NAME "WMS-test"
  STATUS ON
    SIZE 400 300
  EXTENT -12.8422,15.1086 -10.5854,18.3115 
  UNITS METERS
  SHAPEPATH     "C:\ms4w\apps\ms101\data\shapefile"
  IMAGECOLOR 255 255 255
  FONTSET        "C:\ms4w\apps\ms101\fonts\fonts.list"

    
 WEB
      METADATA
      "wms_title"     "WMS Test Server"   
      "wms_onlineresource" "http://localhost/cgi-bin/mapserv?map=C:/ms4w/apps/ms101/htdocs/ms103.map&"   
      "wms_srs"       "EPSG:4326"   
      "wms_enable_request" "*"    
    END
  END # Web
 

LAYER
NAME        'Continent'
METADATA
"wms_title" "Continent"  
END
PROJECTION
"init=epsg:4326" 
END
    STATUS    ON
    TYPE    POLYGON
    CLASS
    COLOR 220 220 220
    END
    END #  Continent layer

END # MAP

et je l'appelle ainsi dans la page html:

Code:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<link rel="stylesheet" href="OpenLayers-2.13.1/theme/default/style.css"
type="text/css" />
<script src="OpenLayers-2.13.1/lib/OpenLayers.js"></script>
<title>ma Tcarte </title>

<script type="text/javascript">

var map;

function init(){

map = new OpenLayers.Map('map', {controls: []});/*création d'une carte */

WmsTest = new OpenLayers.Layer.WMS("WMS-Test","http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/apps/ms101/htdocs/ms103.map&",


                       {
                        srs: 'EPSG:4326',
                        layers: 'Continent',
                        transparent:"false",
                        );
                        map.addLayer(WmsTest);
                        
                    }
</script>
</head>
<body onload="init()">
 <div style="width:1024px; height:768px;border:1px black solid;"id="map"></div>
</body>
</html>

aidez-vous des idées d’où vient le problème ?
merci d'avance

Dernière modification par zinat (Tue 06 August 2013 20:04)

Hors ligne

 

#2 Wed 07 August 2013 14:58

araking
Participant actif
Date d'inscription: 8 Jul 2013
Messages: 83

Re: MapServer comme serveur WMS avec OpenLayers

Installez firebug il vous aidera je crois qu'il peut bien être un problème de parenthèse.

Hors ligne

 

#3 Thu 08 August 2013 21:17

zinat
Participant occasionnel
Date d'inscription: 6 Aug 2013
Messages: 31

Re: MapServer comme serveur WMS avec OpenLayers

araking a écrit:

Installez firebug il vous aidera je crois qu'il peut bien être un problème de parenthèse.


merci  araking de m'avoir répondu , je l'ai installé il m'a rien indiqué comme erreur mais à présent la page m'affiche des carrées rose au lieu de la carte blanche .
avez-vous des idées ,  est-ce c'est pas le bloc imagepath et image url que j'ai pas défini dans le mapfile ?

Hors ligne

 

#4 Fri 09 August 2013 14:17

zinat
Participant occasionnel
Date d'inscription: 6 Aug 2013
Messages: 31

Re: MapServer comme serveur WMS avec OpenLayers

toujours pas de réponse! ,aidez moi svp à détecter d'ou vient le problème

Dernière modification par zinat (Fri 09 August 2013 14:20)

Hors ligne

 

#5 Fri 09 August 2013 15:47

araking
Participant actif
Date d'inscription: 8 Jul 2013
Messages: 83

Re: MapServer comme serveur WMS avec OpenLayers

Bonjour,
Essayez d'ajouter ceci

Code:

var bounds = new OpenLayers.Bounds(
               xxxx,xxxx,xxxx,xxxxx // l'étendue de votre carte
            );
 var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 0.023609375,
                projection: "EPSG:4326",
            };
var map = new OpenLayers.Map('map',options);

à la fn du script ajoutez ces 2 lignes:

Code:

  
map.zoomToMaxExtent();
 map.addControl(new OpenLayers.Control.Navigation());

les problèmes d'affichage viennent toujours d'une projectioin fausse.
Bon courage

Dernière modification par araking (Fri 09 August 2013 15:47)

Hors ligne

 

#6 Fri 09 August 2013 17:12

araking
Participant actif
Date d'inscription: 8 Jul 2013
Messages: 83

Re: MapServer comme serveur WMS avec OpenLayers

Code:

<html>
<head><title>OpenLayers project</title>

<style type="text/css">
        #map {
            width: 800px;
            height: 600px;
            border: 1px solid black;
        }
    </style>

<script src="http://openlayers.org/api/OpenLayers.js";></script>
<script type="text/javascript">
function init(){
 format = 'image/png';


 
            var bounds = new OpenLayers.Bounds(-12.8422,15.1086, -10.5854,18.3115 
               
            );
 
            var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 0.023609375,
                projection: "EPSG:4326",
            };

map = new OpenLayers.Map('map', options);/*création d'une carte */

WmsTest = new OpenLayers.Layer.WMS("WMS-Test","http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/apps/ms101/htdocs/ms103.map&",


                       {
                        srs: 'EPSG:4326',
                        layers: 'continent',
                        transparent:"false",
                        }

                    );    
                    
                        map.addLayer(WmsTest);
 map.zoomToMaxExtent();
            map.addControl(new OpenLayers.Control.Navigation());}
</script>
</head>
<body onload="init()">
 <div style="width:1024px; height:768px;border:1px black solid;"id="map"></div>
</body>
</html>

autre chose enlevez les virgules dans le Extent de votre mapfile

Hors ligne

 

#7 Sat 10 August 2013 17:15

zinat
Participant occasionnel
Date d'inscription: 6 Aug 2013
Messages: 31

Re: MapServer comme serveur WMS avec OpenLayers

araking a écrit:

Bonjour,
Essayez d'ajouter ceci

Code:

var bounds = new OpenLayers.Bounds(
               xxxx,xxxx,xxxx,xxxxx // l'étendue de votre carte
            );
 var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 0.023609375,
                projection: "EPSG:4326",
            };
var map = new OpenLayers.Map('map',options);

à la fn du script ajoutez ces 2 lignes:

Code:

  
map.zoomToMaxExtent();
 map.addControl(new OpenLayers.Control.Navigation());

les problèmes d'affichage viennent toujours d'une projectioin fausse.
Bon courage


Bonjour ;
c'est gentil de votre part ,je vais les tester  et je vous tiens au courant du résultat ,mais j'ai quelques question si vous le permettez : comment vous avez trouvé le maxResolution ? .
si j'ai plusieurs couches à afficher (vecteurs,raster...) dont chacune d'entre elles a une Extent différent quelle valeur dois-je mettre dans le bounds ? est-ce l'extent de la couche de base ou bien ?

merci infiniment d'avance .

Hors ligne

 

#8 Sat 10 August 2013 20:02

araking
Participant actif
Date d'inscription: 8 Jul 2013
Messages: 83

Re: MapServer comme serveur WMS avec OpenLayers

Bonjour,
donc pour la résolution c un choit arbitraire vous pouvez ne pas l'ajouter et pour l'étendue si vous voulez ajouter des couches superficielles au dessus de celle de base je crois qu'ils doivent avoir le même extent mais je ne suis pas sûr :p vous pouvez essayez tous les cas vous n'aurez  rien à perdre big_smile

Hors ligne

 

#9 Sat 10 August 2013 22:18

zinat
Participant occasionnel
Date d'inscription: 6 Aug 2013
Messages: 31

Re: MapServer comme serveur WMS avec OpenLayers

araking a écrit:

Bonjour,
donc pour la résolution c un choit arbitraire vous pouvez ne pas l'ajouter et pour l'étendue si vous voulez ajouter des couches superficielles au dessus de celle de base je crois qu'ils doivent avoir le même extent mais je ne suis pas sûr :p vous pouvez essayez tous les cas vous n'aurez  rien à perdre big_smile


Bonsoir ,
enfin ça  marche à merveille merci beaucoup araking pour l'aide  smile

Hors ligne

 

#10 Sat 10 August 2013 23:08

araking
Participant actif
Date d'inscription: 8 Jul 2013
Messages: 83

Re: MapServer comme serveur WMS avec OpenLayers

Bonsoir,
de rien smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB