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
ENDCode 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
ENDJe 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


