Pages: 1
- Sujet précédent - Problèmes d'affichage WMS et WFS avec openlayers/Mapserver - Sujet suivant
#1 Tue 23 March 2010 09:03
- APierre
- Participant occasionnel
- Date d'inscription: 23 Mar 2010
- Messages: 14
Problèmes d'affichage WMS et WFS avec openlayers/Mapserver
Bonjour,
Je suis étudiant et assez débutant dans le domaine du webmapping.
Dans le cadre d'un projet pour les études j'essaye de faire un guichet cartographique pour une commune.
Il s'agit d'afficher un fond de plan (choix orthophoto ou google maps) et par dessus d'afficher des données vectorielles type conduites, plan de zones...
Mon problème actuellement est l'affichage des orthophotos : j'utilise Mapserver voici le code du .map :
Code:
MAP NAME "Vallorbe" STATUS ON SIZE 200 200 EXTENT 460000 60000 850000 300000 UNITS METERS SHAPEPATH "Swissimage04/" IMAGETYPE PNG PROJECTION "init=epsg:21781" END WEB IMAGEPATH "C:/ms4w/tmp/ms_tmp/" IMAGEURL "/ms_tmp/" LOG "C:/ms4w/tmp/log/" METADATA "wms_title" "WMS Test" "wms_onlineresource" "http://apache/cgi-bin/mapserv.exe?map=D:/projets/2010/geo/meyer/TS_2010/Vallorbe.map&" "wms_srs" "epsg:21781" "wms_format" "image/png" "wfs_title" "WFS Test" "wfs_onlineresource" "http://apache/cgi-bin/mapserv.exe?map=D:/projets/2010/geo/meyer/TS_2010/Vallorbe.map&" "wfs_srs" "epsg:21781" END END LAYER NAME "1201_42" TYPE RASTER STATUS ON DATA "1201_42.jpg" PROJECTION "init=epsg:21781" END METADATA "wms_title" "Ortho" END END LAYER NAME "Parcelles" TYPE POLYGON STATUS ON DATA "Bie_Bien_fonds_ili.shp" CLASS NAME "Parcelles" STYLE OUTLINECOLOR 0 0 0 END END #CLASS PROJECTION "init=epsg:21781" END METADATA "wfs_title" "Parcelles" "gml_featureid" "Nom" "gml_include_items" "all" END DUMP TRUE END #LAYER END
Code javascript, openlayers
Code:
<script src="http://openlayers.org/api/OpenLayers.js"></script> <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAMnUP2OscziB71LfPQBVDTBS36fy1C67uFvqw6k5574VKBBkJhxRBUPP4gx_hzn2xUl_73xpvKBjOcw"></script> <script src="libraries/proj4js-EPSG21781.js"></script> <script src="libraries/proj4js-combined.js"></script> <script type="text/javascript"> var map; var layerList = new Array(); var layerButton = new Array(); function init() { // Options de la carte var options = { projection: new OpenLayers.Projection("EPSG:21781"), maxResolution: "auto", controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.MousePosition(), new OpenLayers.Control.LayerSwitcher() ], numZoomLevels: 13, minZoomLevel: 10, maxZoomLevel: 22 }; map = new OpenLayers.Map("map", options); //déclaration des couches var g_hybrid= new OpenLayers.Layer.Google( "Google Hybrid", {type: G_HYBRID_MAP} ); var g_streets = new OpenLayers.Layer.Google( "Google Streets" ); var g_physical = new OpenLayers.Layer.Google( "Google Physical", {type: G_PHYSICAL_MAP} ); var g_satellite = new OpenLayers.Layer.Google( "Google Satellite", {type: G_SATELLITE_MAP} ); //Création de la couche Ortho var wms_ortho = new OpenLayers.Layer.WMS( "Orthophoto 2007", "http://apache/cgi-bin/mapserv.exe?map=D:/projets/2010/geo/meyer/TS_2010/Vallorbe.map&", { Layers: "1201_42", format: "image/png" } ); //Création des couches SIT var Parcelles = new OpenLayers.Layer.WFS( "Parcelles", "http://apache/cgi-bin/mapserv.exe?map=D:/projets/2010/geo/meyer/TS_2010/Vallorbe.map&", { Layers: "Parcelles", format: "image/png" } ); // un tableau avec la liste des couches layerList["GStreets"] = g_streets; layerList["GHybrid"] = g_hybrid; layerList["GSatellite"] = g_satellite; layerList["Ortho"] = wms_ortho; layerList["Parcelles"] = Parcelles; // un tableau avec la liste des boutons d'options layerButton["GStreets"] = "GStreets"; layerButton["GHybrid"] = "GHybrid"; layerButton["GSatellite"] = "GSatellite"; layerButton["Ortho"] = "Ortho"; layerButton["Parcelles"] = "Parcelles"; map.addLayers([ g_hybrid, g_streets, g_physical, g_satellite, wms_ortho, Parcelles ]); map.setCenter(new OpenLayers.LonLat(6.376463, 46.711525), 4); document.getElementById('GHybrid').checked = true; } // fin init() function update() { var layer; var button; for (i in layerList){ layer = layerList[i]; button = layerButton[i]; layer.setVisibility(document.getElementById(button).checked); if (document.getElementById(button).checked) {map.setBaseLayer(layer)}; } } </script>
Les orthophotos apparaissent blanches de même que les données dans le système ESPG:21781
Que faire pour afficher correctement ces orthophotos en gardant le même niveau de zoom?
Le problème est qu'il faudrait que j'affiche plusieurs orthophotos pour couvrir la commune : comment faire, quel code utiliser ?
De même pour les WFS.
Merci d'avance
Dernière modification par APierre (Tue 23 March 2010 11:47)
Hors ligne
#2 Wed 31 March 2010 12:32
- Delu
- Participant actif
- Lieu: Briançon
- Date d'inscription: 29 Apr 2008
- Messages: 76
Re: Problèmes d'affichage WMS et WFS avec openlayers/Mapserver
Bonjour,
Est-ce que tu as résolu tes pb ?
pour afficher plusieurs Orthos il est possible de passer par un fichier shape qui défini l'emprise de plus orthos.
Code:
LAYER NAME "ortho_tile" TYPE POLYGON GROUP fonds DATA "raster/Ortho2003.shp" CLASS STYLE OUTLINECOLOR 255 0 0 END END METADATA "wms_title" "dalage des Orthophotos IGN" "wms_extent" "870000 1940000 943685 2030790" "wms_srs" "EPSG:27572 EPSG:4326" END MAXSCALE 10000 MINSCALE 100 END LAYER NAME "Ortho2003" TYPE RASTER GROUP fonds TILEINDEX "ortho_tile" METADATA "wms_title" "Orthophoto IGN" "wms_extent" "870000 1940000 950000 2040000" "wms_srs" "EPSG:27572 EPSG:4326" END MAXSCALE 10000 MINSCALE 100 END
Je peux te faire passer le zip de la shape à titre d'exemple.
Pour le reste, est-ce que ton .map fonctionne. C'est à dire est-ce qu'il y a au moins qq chose qui s'affiche ou bien le pb vient du coté Openlayers ?
Gil
Hors ligne
#3 Wed 31 March 2010 15:24
- APierre
- Participant occasionnel
- Date d'inscription: 23 Mar 2010
- Messages: 14
Re: Problèmes d'affichage WMS et WFS avec openlayers/Mapserver
Hello, j'ai pas résolu ce problème d'affichage des orthos...
Elles sont en .jpg j'en ai 2 qui s'affichent sur mes 8 couvrant la commune donc le map fonctionne.
La resolution est crade aussi.
Pour ta solution c'est pour "couper" les orthos selon un polygone c'est ça ?
Si tu connais quelqu'un de doué en programmation avec qui je pourrais communiquer par mail ca me dirait bien
A+
Hors ligne
#4 Wed 31 March 2010 17:58
- Delu
- Participant actif
- Lieu: Briançon
- Date d'inscription: 29 Apr 2008
- Messages: 76
Re: Problèmes d'affichage WMS et WFS avec openlayers/Mapserver
Pour la résolution pourrie c'est surement un pb de nombre de couleurs. Mapserveur doit te retourner des images en 256 couleurs.
Dans la partie map de ton .map, avant la partie web, tu devrais ajouter des informations plus précises concernant le ou les formats de sortie des images que mapserver va servir par exemple:
Code:
MAP NAME "toto" STATUS ON EXTENT 870000 1940000 950000 2040000 SIZE 800 500 UNITS METERS SHAPEPATH "/var/local" IMAGECOLOR -1 -1 -1 SYMBOLSET "symbols.txt" FONTSET "fonts.txt" #IMAGETYPE png PROJECTION "init=epsg:27572" END CONFIG "MS_ERRORFILE" "/tmp/ms_error.txt" OUTPUTFORMAT NAME "aggtrans" MIMETYPE "image/png" DRIVER AGG/PNG EXTENSION "png" IMAGEMODE RGBA TRANSPARENT ON FORMATOPTION "INTERLACE=OFF" END OUTPUTFORMAT NAME "png" MIMETYPE "image/png" DRIVER "GD/PNG" EXTENSION "png" IMAGEMODE RGB FORMATOPTION "TRANSPARENT=OFF" END OUTPUTFORMAT NAME "agg" MIMETYPE "image/png" DRIVER AGG/PNG EXTENSION "png" IMAGEMODE RGB TRANSPARENT OFF FORMATOPTION "INTERLACE=OFF" FORMATOPTION "QUANTIZE_FORCE=ON" FORMATOPTION "QUANTIZE_DITHER=OFF" FORMATOPTION "QUANTIZE_COLORS=256" END OUTPUTFORMAT NAME "gif" DRIVER "GD/GIF" MIMETYPE "image/gif" IMAGEMODE PC256 EXTENSION "gif" TRANSPARENT ON END LEGEND STATUS ON KEYSIZE 15 10 IMAGECOLOR 255 255 255 LABEL TYPE TRUETYPE SIZE 8 COLOR 0 0 0 FONT vera END END WEB ....
tout est là
http://fa.vdb.free.fr/MapServer/doc/map … tputformat
ou plus généralement là
http://fa.vdb.free.fr/MapServer/doc/map … ce_fr.html
pour ce qui concerne l'orthotile je ne suis pas expert, j'ai repris un exemple (que je peux te faire passer si tu me donne un mail). Mais ton pb vient peut-être de la transparence.
Essaie de mettre
IMAGECOLOR -1 -1 -1
après la clause SHAPEPATH par exemple.
Hors ligne
#5 Sun 11 April 2010 23:19
- APierre
- Participant occasionnel
- Date d'inscription: 23 Mar 2010
- Messages: 14
Re: Problèmes d'affichage WMS et WFS avec openlayers/Mapserver
Hello , merci pour la reponse.
J'etais absent quelques jours en vacances je reprends mon code demain.
Je te tiens au courant si tu es toujours pour me donner un coup de main.
A+
Hors ligne
Pages: 1
- Sujet précédent - Problèmes d'affichage WMS et WFS avec openlayers/Mapserver - Sujet suivant