#1 Tue 10 March 2015 09:05
- viarn
- Juste Inscrit !
- Lieu: SAINT SYMPHORIEN D'OZON
- Date d'inscription: 5 Dec 2008
- Messages: 9
OpenLayers 2.14 - Problème de Projection
Bonjour à tous,
Comme pour beaucoup de monde j'ai beaucoup de mal avec les projections. J'ai parcouru plusieurs sujets, et plus j'en ai appris, moins j'en ai compris.
Je prépare un petit projet pour ma société, qui permettra aux clients de se localiser, via une couche google, d'afficher une carte géologique et d'afficher également les forages autour de chez eux.
Mais voilà il y a une couche IGN qui m'affiche des tuiles roses.
J'ai inspecté la requête et j'ai remarqué que dans la bbox passait 55000.44567 au lieu de 4.92 etc.
Voila ce que j'obtiens :
http://mapdmz.brgm.fr/cgi-bin/mapserv?m … HEIGHT=500
Voila ce que j'aimerais :
http://mapdmz.brgm.fr/cgi-bin/mapserv?m … HEIGHT=500
J'aimerais trouver un bon tuto, (peut-être qu'il y en a et que j'ai mal cherché), et en français.
Voici une partie de mon code, si qqun à des suggestions ou des idées : je tiens à préciser que je n'ai pas de SIG et que j'utilise seulement OpenLayers 2.14.
Code:
var zooom = 14; map = new OpenLayers.Map('map', { //projection: new OpenLayers.Projection("EPSG:900913"), projection: 'EPSG:3857', layers: [ new OpenLayers.Layer.Google( //projection possible 3857 "Google Satellite", {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20,sphericalMercator: true } // ), new OpenLayers.Layer.Google( //projection possible 3857 "Google Cartes", {numZoomLevels: 20,sphericalMercator: true} ), new OpenLayers.Layer.WMS( //projection possible 4326, 2154, 2972, 2975 "Carte géologique", "http://geoservices.brgm.fr/geologie", {layers: 'SCAN_D_GEOL50', numZoomLevels: 20} ), new OpenLayers.Layer.WMS( //projection possible 2154, 27582 "Carte IGN", "http://mapdmz.brgm.fr/cgi-bin/mapserv?map=/carto/infoterre/mapFiles/scan.map", { srs: 'EPSG:27582', displayProjection: "EPSG:4326", layers: 'SCAN25', format: 'image/Jpeg', isBaseLayer: true, visibility: true }//, //{'reproject': true} ), new OpenLayers.Layer.WMS( "Forages d'eau existant", "http://geoservices.brgm.fr/geologie", {layers: 'BSS', transparent: "true", format: "image/png"} ) ], center: new OpenLayers.LonLat(lon, lat) .transform('EPSG:4326', 'EPSG:3857'), zoom: zooom }); map.addControl(new OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('layerswitcher')})); map.addControl(new OpenLayers.Control.Navigation()); map.addControl(new OpenLayers.Control.MousePosition({ separator: ' | ', numDigits: 6, emptyString: 'Hors de la carte', displayProjection: new OpenLayers.Projection("EPSG:4326") // EPSG:4326, CRS:84, urn:ogc:def:crs:EPSG:6.6:4326, EPSG:900913, EPSG:3857, EPSG:102113 and EPSG:102100 })); map.addControl(new OpenLayers.Control.ScaleLine()); zoomuser = map.zoom.toFixed();
Merci beaucoup si vous avez le temps de jeter un oeil.
Pour la visualisation en entier.
http://ozonforages.free.fr/cartes.htm
Vincent
Hors ligne
#2 Tue 10 March 2015 12:30
Re: OpenLayers 2.14 - Problème de Projection
Bonjour,
Effectivement, le problème des projections est récurant surtout dans le webmapping !
La carte OpenLayers doit être en PseudoMercator (EPSG:3857) et normalement toutes les couches qui sont ajoutées seront reprojetées en 3857 à condition que MapServer le permette !
Il faut définir toutes les projections qui pourront être demandées par le client (OpenLayers en l'occurence) dans le mapfile (bloc web).
Cordialement,
Jean-François Behm, formateur SIG, jf.behm@, idgeo.frformations@ 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 Tue 10 March 2015 18:48
- viarn
- Juste Inscrit !
- Lieu: SAINT SYMPHORIEN D'OZON
- Date d'inscription: 5 Dec 2008
- Messages: 9
Re: OpenLayers 2.14 - Problème de Projection
Bonsoir, je vous remercie pour votre réponse. Si je comprends bien je dois créer un mapfile avec openlayers plutôt que de définir dans chaque layer différentes projections. Faut-il que j'installe Mapserver pour ce faire ou par simple implémentation de code ?
Hors ligne
#4 Wed 11 March 2015 12:39
- viarn
- Juste Inscrit !
- Lieu: SAINT SYMPHORIEN D'OZON
- Date d'inscription: 5 Dec 2008
- Messages: 9
Re: OpenLayers 2.14 - Problème de Projection
Bonjour à tous, bon j'ai contourné le problème des projections, ne sachant pas créer de Mapfile.
Je suis allé sur le site de l'IGN et j'ai créé une clé DEV pour travailler en localhost et une clé prod pour un affichage grand public sur le web.
Et la étrangement je n'ai plus de problème de projections.
Sur une adresse saisie, je peux choisir soit google, brgm, ign ou bien le cadastre sans problème et afficher les forages de la Banque du Sous Sol.
Et déplacer mon marker sans problème
Pour ceux qui veulent voir :
http://ozonforages.free.fr/cartetest.html
Merci quand même de votre aide.
Vincent
RESOLU
Hors ligne
#5 Wed 11 March 2015 13:51
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: OpenLayers 2.14 - Problème de Projection
Bonjour,
Je pense que le problème n'était pas dû à la projection utilisée mais à l'absence de clé IGN valide.
Ce qui est étonnant car ta couche IGN semble être fournie par un service provenant du BRGM.
Peut-être que le fait de t'enregistrer sur le site de l'IGN a permis d'autoriser ton site comme referer...
Vianney Dugrain
Hors ligne
#6 Wed 11 March 2015 14:29
- viarn
- Juste Inscrit !
- Lieu: SAINT SYMPHORIEN D'OZON
- Date d'inscription: 5 Dec 2008
- Messages: 9
Re: OpenLayers 2.14 - Problème de Projection
Bonjour, effectivement ma couche IGN vient bien d'un serveur du BRGM. Cependant dans cette solution il n'y a pas besoin de la fameuse clé API_KEY. Je pense que c'est un oubli du BRGM de retirer les cartes au moment ou l'IGN mettait en place ses fameuses clés. Pour être correct et ne pas avoir de problème je me suis inscris sur le site IGN et du coup l'appel des cartes est différent dans mon code javascript.
Dans mon appli de gestion commerciale en VB6 j'utilisais un composant webBrowser ou je codais en dur la requête passée au serveur, j'avais juste à rajouter l'emprise dans mes BBOX.
Dans le lien ci -dessous, pas besoin de la clé IGN.
http://mapdmz.brgm.fr/cgi-bin/mapserv?m … HEIGHT=500
Hors ligne