#1 Tue 08 June 2010 10:18
- Remi01
- Participant actif
- Date d'inscription: 18 Jan 2007
- Messages: 75
Reprojection WMS à la volée
Bonjour,
J'ai tenté de reprojeter un flux WMS de Lambert II étendu natif en Lambert93 pour le rendre compatible avec mes données.
J'ai déclaré un couche dans Mapserver (qui est donc client du WMS) puis tenter de resservir ce flux en Lambert93 à OpenLayers/Tilecache. Malheureusement ça ne fonctionne pas :
Invalid SRS Given : SRS must be valid for all requested layers ...
Voila la déclaration de mon bloc Mapfile
METADATA du bloc WEB de mon Mapfile :
Code:
METADATA "wms_title" "WMS" "wms_onlineresource" "http://xxxx/xxx.map&" "wms_srs" "EPSG:2154 EPSG:27582" END
Déclaration de la couche :
Code:
LAYER NAME "xxx" METADATA "wms_title" "xxx1" "wms_srs" "EPSG:27582 EPSG:2154" END TYPE RASTER STATUS ON CONNECTION "http://xxx&map=carte.map&VERSION=1.1.0&LAYERS=Layer1&FORMAT=image/png" CONNECTIONTYPE WMS PROJECTION "init=epsg:27582" END END
Mon bloc est fonctionnel et me permet d'afficher les couches sans reprojection à la volée ...
Il me semble que ce genre de manip est théoriquement possible, si c'est le cas est-ce que quelqu'un aurait une piste...
Merci !
Dernière modification par Remi01 (Tue 08 June 2010 10:47)
Hors ligne
#2 Tue 15 June 2010 16:13
- Remi01
- Participant actif
- Date d'inscription: 18 Jan 2007
- Messages: 75
Re: Reprojection WMS à la volée
Re-bonjour,
Personne n'a de suggestion sur ce point ?
Hors ligne
#3 Tue 15 June 2010 16:45
Re: Reprojection WMS à la volée
Bonjour,
Est ce que le message d'erreur provient de MapServer ou d'OpenLayers ? Dans ce dernier cas il faut vérifier que la projection définie au niveau de l'objet map et celles définies dans les couches sont identiques.
Quelle est la requête WMS envoyée par OL ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Tue 15 June 2010 17:05
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Reprojection WMS à la volée
Je pense que le message provient de MapServer, auquel est demandé un code EPSG qu'il n'est pas censé fournir.
Est-ce que tous les appels WMS (OpenLayers -> Tilecache; Tilecache->MapServer) se font bien avec un des codes configurés (27582 ou 2154) ?
Guillaume
Hors ligne
#5 Wed 16 June 2010 16:00
- Remi01
- Participant actif
- Date d'inscription: 18 Jan 2007
- Messages: 75
Re: Reprojection WMS à la volée
Merci à vous ! J'ai fait de nouvelles tentatives mais sans succès ...
L'erreur vient bien de Mapserver ...
Firebug me donne ça concernant l'appel de la couche via OpenLayers vers Mapserver (pas de tilecache dans un premier temps) :
BBOX 188817.63510252,6209719.5771524,689197.36489748,6495469.4228476
EXCEPTIONS application/vnd.ogc.se_inimage
FORMAT image/png
HEIGHT 540
LAYERS p_reproj
REQUEST GetMap
SERVICE WMS
SRS EPSG:2154
STYLES
TRANSPARENT true
VERSION 1.1.1
WIDTH 945
map mapfiles/environnement.map
Donc il y'a bien mention du code EPSG:2154 correspondant à la projection que je souhaite, et il est bien déclaré au niveau du Mapfile ... Je vois pas ce qui cloche .... (j'ai vérifié l'existence des codes EPSG 2154 et 27582 pour Mapserver, c'est ok).
Voila la déclaration du bloc Mapfile
METADATA du bloc WEB :
Code:
METADATA "wms_title" "WMS" "wms_onlineresource" "http://xxxx/xxx.map&" "wms_srs" "EPSG:2154 EPSG:27582" END
Déclaration de la couche :
Code:
LAYER NAME "xxx" METADATA "wms_title" "xxx1" "wms_srs" "EPSG:27582 EPSG:2154" END TYPE RASTER STATUS ON CONNECTION "http://xxx&map=carte.map&VERSION=1.1.0&LAYERS=Layer1&FORMAT=image/png" CONNECTIONTYPE WMS PROJECTION "init=epsg:27582" END END
Dernière modification par Remi01 (Wed 16 June 2010 16:04)
Hors ligne
#6 Wed 16 June 2010 16:45
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Reprojection WMS à la volée
Je pense qu'il fait mettre uniquement EPSG:27582 dans le wms_srs de ta couche. Ainsi il interrogera le serveur distant avec ce code, tout en le reprojetant éventuellement pour le servir ensuite dans un des srs référencés dans l'objet WEB.
C'est comme ça que j'interprète ce qui est là : http://mapserver.org/ogc/wms_client.html
Bon courage,
Guillaume
Hors ligne
#7 Wed 16 June 2010 20:15
- fph
- Juste Inscrit !
- Date d'inscription: 21 Apr 2010
- Messages: 2
Re: Reprojection WMS à la volée
J'ai tenté de reprojeter un flux WMS de Lambert II étendu natif en Lambert93 pour le rendre compatible avec mes données.
J'ai déclaré un couche dans Mapserver (qui est donc client du WMS) puis tenter de resservir ce flux en Lambert93 à OpenLayers/Tilecache. Malheureusement ça ne fonctionne pas :
Est-ce que le fichier epsg contient la définition 2154 ?
Hors ligne
#8 Thu 17 June 2010 17:40
- Remi01
- Participant actif
- Date d'inscription: 18 Jan 2007
- Messages: 75
Re: Reprojection WMS à la volée
Je pense qu'il fait mettre uniquement EPSG:27582 dans le wms_srs de ta couche. Ainsi il interrogera le serveur distant avec ce code, tout en le reprojetant éventuellement pour le servir ensuite dans un des srs référencés dans l'objet WEB.
C'est comme ça que j'interprète ce qui est là : http://mapserver.org/ogc/wms_client.html
Bon courage,
Guillaume
Bingo ! Un grand merci Guillaume, ça fonctionne !
Merci également à fph pour avoir proposé une piste.
Hors ligne
#9 Thu 17 June 2010 18:12
- Remi01
- Participant actif
- Date d'inscription: 18 Jan 2007
- Messages: 75
Re: Reprojection WMS à la volée
J'ai plusieurs questions qui me viennent du coup ...
Avant de poser des questions techniques je préfère commencer par une première question plutôt fondamentale :
- Peut on librement reprojeter des données provenant d'un flux WMS externe public pour les rendre compatible avec ses propres données (usage interne) - j'imagine que oui... Y'a t'il des conditions générales, ou c'est au cas par cas que ça se joue ? Et pour un usage plus large (diffusion à des tiers), comment ça se passe ?
Merci pour vos éventuelles réponses ...
Hors ligne
#10 Thu 17 June 2010 18:41
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Reprojection WMS à la volée
Re,
Dans le principe tu dois pouvoir. Néanmoins, il faudrait jeter un oeil au getCapabilities pour voir s'il n'y a pas un accessconstraints ou un truc du genre.
Guillaume
Hors ligne