#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
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
Bonjour,
Essayez d'ajouter ceciCode:
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
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
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
Bonsoir ,
enfin ça marche à merveille merci beaucoup araking pour l'aide
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
Hors ligne