#1 Thu 25 August 2016 09:42
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
openlayers-3 mapserver WMS probleme affichage
Bonjour,
J'essaye désespéramment d'inclure un mapserver WMS dans Openlayers-3 utilisant la projection personnalisée sans proj4j.js , selon cet exemple . Je n'ai aucune image , aucun message d'erreur et Openlayers "trouve" bien mapserver .map selon les outils de débogage, réseau de fenêtre.
Je présume qu'une histoire de projection est à l'origine de ma page vide mais je ne trouve pas
.
Merci
Code:
<!doctype html>
<html lang="en">
<head>
<style>
#map {
height: 256px;
width: 512px;
}
.ol-attribution a{
color: black;
}
</style>
<script src="http://openlayers.org/en/v3.17.1/build/ol.js" type="text/javascript"></script>
<title>OpenLayers 3</title>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Image({
title: 'operations Inrap',
source: new ol.source.ImageWMS({
url: 'http://10.3.1.51:8080/cgi-bin/mapserv.exe?map=C:\OSGeo4W\apache\htdocs\fond_mapserver.map',
params: {'LAYERS': 'Interrégions',
//'CRS': 'EPSG:2154',
'FORMAT': 'image/jpeg'},
serverType: 'mapserver',
extent: [93501.1, 6044342.00, 1248133.25, 7115784.50]
})
})
],
view: new ol.View({
projection: new ol.proj.Projection({
code:'EPSG:2154',
units: 'm'
}),
center: [681845, 6606361],
zoom:10
}),
controls: ol.control.defaults({
attributionOptions: {
collapsible: true
}
}),
});
</script>Hors ligne
#2 Thu 25 August 2016 11:05
Re: openlayers-3 mapserver WMS probleme affichage
Bonjour,
pour pouvoir vous aider, il faut voir le mapfile correspondant, c'est souvent là que le problème se trouve !
Cordialement,
Jean-François Behm, formateur SIG, jf.behm@idgeo.fr, formations@idgeo.fr
IDGEO, www.idgeo.fr
Institut de Développement de la Géomatique 42, avenue de Général de Croutte - 31100 toulouse
Hors ligne
#3 Thu 25 August 2016 11:09
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
Le mapfile fonctionne très bien sous qgis 2.14.
Sinon le .map étant très long, quelle partie devrais-je coller ?
EDIT:comment être sûr que openlayers recupere bien l'image de mapserver ? même s'il ne l'affiche pas (encore).
Dernière modification par Leehan (Thu 25 August 2016 11:48)
Hors ligne
#4 Thu 25 August 2016 12:22
Re: openlayers-3 mapserver WMS probleme affichage
La partie WEB METADATA .... END END et la partie LAYER ... END de la couche a visualiser.
Pour voir si une image est bien récupérer, F12 (console) et partie réseau dans la navigateur.
Jean-François Behm, formateur SIG, jf.behm@idgeo.fr, formations@idgeo.fr
IDGEO, www.idgeo.fr
Institut de Développement de la Géomatique 42, avenue de Général de Croutte - 31100 toulouse
Hors ligne
#5 Thu 25 August 2016 13:22
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
Code:
WEB
METADATA
"wms_title" "WMS-Inrap, outil d'aide au montage des opérations"
"wms_onlineresource" "http://10.3.1.51:8080/cgi-bin/mapserv.exe?MAP=C:\OSGeo4W\apache\htdocs\fond_mapserver.map&"
"wms_enable_request" "*" #active les getcapabilities, getmap
"wms_srs" "EPSG:2154 EPSG:3857 EPSG:900913"
"wms_encoding" "UTF-8"
END #fin metadata
#attention : onlineresource doit etre identique au debut de l'URL du navigateur (= pas oublier le MAP)
END #end webCode:
LAYER
NAME "Interrégions"
TYPE POLYGON
OPACITY 30
CONNECTIONTYPE POSTGIS
CONNECTION "host=10.3.1.51 dbname=inraptours user=PostGIS password=xxxx port=5432"
DATA "geom from (select gid, geom, nom_com, code_dept from activite.communes) as plop using unique gid srid = 2154"
PROCESSING "CLOSE_CONNECTION=DEFER"
PROJECTION
"init=epsg:2154"
END #fin projection
LABELITEM "nom_com"
CLASSITEM "code_dept"
LABELMAXSCALEDENOM 450000
LABELMINSCALEDENOM 70000
CLASS #-----debut class CIF
NAME "Centre Ile-de-France" #apparait en legende
EXPRESSION /18|28|36|37|41|45|75|77|78|91|92|93|94|95/
STYLE
COLOR 255 240 140
OUTLINECOLOR 0 0 0
WIDTH 0.5
MAXSCALEDENOM 1500000
END #end STYLE CIF
STYLE
COLOR 255 240 140
OUTLINECOLOR 255 240 140
WIDTH 0.5
MINSCALEDENOM 1500000
END #end STYLE CIF
LABEL #apparait pour chaque entité sur la carte
FONT "dejavu"
COLOR 255 240 140
OUTLINECOLOR 0 0 0
OUTLINEWIDTH 1
POSITION cc
SIZE 4.5
TYPE TRUETYPE
END #ENd label
END # end class CIF
CLASS #-----debut RAA
NAME "Rhône-Alpes Auvergne" #apparait en legende
EXPRESSION /01|03|07|15|26|38|42|43|63|69|73|74/
STYLE
COLOR 0 200 100
OUTLINECOLOR 0 0 0
WIDTH 0.5
MAXSCALEDENOM 1500000
END #end STYLE RAA
STYLE
COLOR 0 200 100
OUTLINECOLOR 0 220 100
WIDTH 0.5
MINSCALEDENOM 1500000
END #end STYLE RAA
LABEL #apparait pour chaque entité sur la carte
FONT "dejavu"
COLOR 0 200 100
OUTLINECOLOR 0 0 0
OUTLINEWIDTH 1
POSITION cc
SIZE 4.5
TYPE TRUETYPE
END #ENd label
END # end class RAA
CLASS #-----debut GEN
NAME "Grand Est Nord" #apparait en legende
EXPRESSION /08|10|51|52|54|55|57|88/
STYLE
COLOR 160 50 0
OUTLINECOLOR 0 0 0
WIDTH 0.5
MAXSCALEDENOM 1500000
END #end STYLE GEN
STYLE
COLOR 160 50 0
OUTLINECOLOR 180 50 0
WIDTH 0.5
MINSCALEDENOM 1500000
END #end STYLE GEN
LABEL #apparait pour chaque entité sur la carte
FONT "dejavu"
COLOR 160 50 0
OUTLINECOLOR 0 0 0
OUTLINEWIDTH 1
POSITION cc
SIZE 4.5
TYPE TRUETYPE
END #ENd label
END # end class GEN
CLASS #-----debut GES
NAME "Grand Est Sud" #apparait en legende
EXPRESSION /21|25|39|58|67|68|70|71|89|90/
STYLE
COLOR 180 220 150
OUTLINECOLOR 0 0 0
WIDTH 0.5
MAXSCALEDENOM 1500000
END #end STYLE GES
STYLE
COLOR 180 220 150
OUTLINECOLOR 180 220 150
WIDTH 0.5
MINSCALEDENOM 1500000
END #end STYLE GES
LABEL #apparait pour chaque entité sur la carte
FONT "dejavu"
COLOR 180 220 150
OUTLINECOLOR 0 0 0
OUTLINEWIDTH 1
POSITION cc
SIZE 4.5
TYPE TRUETYPE
END #ENd label
END # end class GES
METADATA
"wms_title" "Interrégions"
END #fin metadata interrégions
End #end layer interrégionsquant à la réponse de mapserver : transfert : 0.57ko, Taille : 0 ko. Est-ce à dire que l'image n'est pas recuperée même si le connexion au serveur se fait ?
Dernière modification par Leehan (Thu 25 August 2016 13:22)
Hors ligne
#6 Thu 25 August 2016 13:58
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: openlayers-3 mapserver WMS probleme affichage
Bonjour,
Tu peux tester ton mapfile dans un navigateur en lui donnant dirctement l'url mapserver :
Code:
http://10.3.1.51:8080/cgi-bin/mapserv.exe?map=C:\OSGeo4W\apache\htdocs\fond_mapserver.map&mode=map
S'il y a une erreur de syntaxe dans le mapfile, tu auras un message d'erreur dans ton navigateur.
Si page blanche, l'image est générée mais elle est vide. Ca peut être un problème d'extent ou de projection.
Vianney Dugrain
Hors ligne
#7 Thu 25 August 2016 14:00
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
Le mapfile fonctionne très bien sous Qgis 2.14.
Je suppose un problème de projection mais suis incapable de l'identifier clairement.
Hors ligne
#8 Thu 25 August 2016 14:17
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
J'ai comme un doute là :
la requete envoyée par le navigateur popur récupérer l'image de mapserver commence par :
Code:
http://10.3.1.51:8080/cgi-bin/mapserv.exe?map=C:OSGeo4Wapachehtdocs%0Cond_mapserver.map&SERVICE=WMS&...
Je ne vois pas les "/" entre le C: et OSGeo4W ni les autres ??! 0_o
Hors ligne
#9 Thu 25 August 2016 14:22
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: openlayers-3 mapserver WMS probleme affichage
C'est normal, les URL ne peuvent pas contenir de caractères spéciaux. Il sont remplacés par un codage URL commençant par %.
Vianney Dugrain
Hors ligne
#10 Thu 25 August 2016 14:28
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
oui mais là y'a rien du tout entre le" C:" et "OSGeo4W".
Si je copie/colle dans le navigateur cette adresse, ca ne fonctionne pas évidemment. Faut rajouter les "/".
J'ai bon ou je suis en train de dire n'importe quoi et passer du coté obscur ?
Hors ligne
#11 Thu 25 August 2016 15:13
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: openlayers-3 mapserver WMS probleme affichage
Ah oui effectivement j'avais regardé trop vite ^^
Comme ça je dirais que l'antislash est interprété par javascript comme un caractère d'échappement, d'où sa disparition.
Essaie de doubler les antislash de l'url dans ton code js ('\\').
Sinon, l'appel mapserver dans le navigateur te renvoie quoi ? une image blanche ?
Vianney Dugrain
Hors ligne
#12 Thu 25 August 2016 15:37
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
Je reçois un belle image blanche si je ne mets pas les \ là où il faut.
J'essaie de doubler les "\" mais je crois que j'ai déjà essayé...
Dernière modification par Leehan (Thu 25 August 2016 15:41)
Hors ligne
#13 Thu 25 August 2016 15:58
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
on avance :
Code:
url: 'http://10.3.1.51:8080/cgi-bin/mapserv.exe?map=C:\\OSGeo4W\\apache\\htdocs\\fond_mapserver.map'
dans le javascript a permis d'obtenir
Code:
http://10.3.1.51:8080/cgi-bin/mapserv.exe?map=C:\OSGeo4W\apache\htdocs\fond_mapserver.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fjpeg&TRANSPARENT=true&LAYERS=Interr%C3%83%C2%A9gions&CRS=EPSG%3A2154&STYLES=&MAP_RESOLUTION=108.00000429153442&WIDTH=922&HEIGHT=461&BBOX=158470.20322265627%2C6289091.986718751%2C1351657.6157226562%2C6885685.692968749
en requête dans le navigateur, recupérée dans les outils de debug. Ca semble résolu pour cette partie. On a recuperé le bon chemin. Merci ![]()
Cette requête directement passée dans FF renvoie
Code:
<ServiceExceptionReport version="1.3.0" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd"><ServiceException code="LayerNotDefined"> msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the LAYERS parameter. </ServiceException></ServiceExceptionReport>
donc il doit manquer un paramètre dans le mapfile...
remarque : le wms est toujours bien lu par QGIS.
Hors ligne
#14 Thu 25 August 2016 16:13
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: openlayers-3 mapserver WMS probleme affichage
Je pense que c'est l'accent dans ton nom de couche ("Interrégions").
Sans l'accent ça donne quoi ?
Vianney Dugrain
Hors ligne
#15 Thu 25 August 2016 16:24
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
exactement je viens de m'en rendre compte à l'instant !
du coup, comment gérer le truc (à part en changeant le nom de la couche dansle mapfile) ?
Hors ligne
#16 Thu 25 August 2016 16:29
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: openlayers-3 mapserver WMS probleme affichage
(à part en changeant le nom de la couche dansle mapfile)
C'est la meilleure chose à faire à mon avis.
Vianney Dugrain
Hors ligne
#17 Thu 25 August 2016 17:39
Re: openlayers-3 mapserver WMS probleme affichage
Je suis d'accord avec VianneyD : pas de caractères accentués dans le nom des layers (par contre dans CLASS, on peut).
Jean-François Behm, formateur SIG, jf.behm@idgeo.fr, formations@idgeo.fr
IDGEO, www.idgeo.fr
Institut de Développement de la Géomatique 42, avenue de Général de Croutte - 31100 toulouse
Hors ligne
#18 Fri 26 August 2016 09:40
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: openlayers-3 mapserver WMS probleme affichage
Bref, manitenant ca fonctionne.
Merci du coup de patte en tout cas ![]()
Hors ligne


