#1 Wed 03 February 2016 09:55
- seb.49
- Participant occasionnel
- Date d'inscription: 5 Jun 2009
- Messages: 19
Positionnement d'un OpenLayers.Image
Bonjour,
la question a probablement déjà été posé mais je n'ai pas trouvé de solution convenable à mon problème sur le forum.
J'ai un souci pour positionner une image avec OpenLayers. J'ai un logiciel (web) qui génére soit du KML soit permet de voir des cartes dans une interface web avec OpenLayers.
Concètement voici une capture d'une carte visualisée sous Google Earth et la meme avec openlayers, (après vérification c'est la carte sous Google Earth qui est bonne). On constate le décalage surtout sur la zone de Saint Brieuc. J'ai beau vérifier la boudingbox de mon image sous openlayers les coordonnées sont bien les memes que sous Google Earth mais convertis en EPSG:900913
[img]http://img15.hostingpics.net/pics/154662capturege.png[/img]
[img]http://img15.hostingpics.net/pics/183835captureol.png[/img]
Qu'ai je mal fait ? la conversion ? Faut il que je retaille mon image avant avec gdal (j'ai vu des choses avec gdalwarp) ?
Voici le code pour ajouter l'image dans OpenLayers
Code:
var bounds = new OpenLayers.Bounds(); bounds.extend(ConvertLonLatFromESPG4326ToESPG900913(new OpenLayers.LonLat(y1, x1))); bounds.extend(ConvertLonLatFromESPG4326ToESPG900913(new OpenLayers.LonLat(y2, x2))); var graphic = new OpenLayers.Layer.Image( nomImage, url, bounds, new OpenLayers.Size($("#map").width(), $("#map").height()), { //http://www.forumsig.org/showthread.php?t=26393 maxResolution: map.layers[0].resolutions[0], resolutions: map.layers[0].resolutions, isBaseLayer: false, displayInLayerSwitcher: true } ); map.addLayer(graphic);
Merci pour votre aide
Dernière modification par seb.49 (Wed 03 February 2016 09:56)
Hors ligne
#2 Mon 08 February 2016 11:26
- seb.49
- Participant occasionnel
- Date d'inscription: 5 Jun 2009
- Messages: 19
Re: Positionnement d'un OpenLayers.Image
Je vous mets en lien un code sur JsFiddle pour tester
http://jsfiddle.net/seb49/8j017j93/
on voit que les 4 points ajoutés sont bon s(si on les place sur google earth on se trouve aux même endroits) donc la boudingbox est bonne. Que fait OpenLayers à mon image ??
Merci de votre aide
Dernière modification par seb.49 (Mon 08 February 2016 11:26)
Hors ligne
#3 Wed 10 February 2016 15:34
- seb.49
- Participant occasionnel
- Date d'inscription: 5 Jun 2009
- Messages: 19
Re: Positionnement d'un OpenLayers.Image
J'en enfin la solution, comme je le pensais il fallait passer par gdalwarp.
Voici le code qui génère une image correctement redessinée
Code:
//etape1 créer un GeoTIFF gdal_translate.exe -of Gtiff -co tfw=yes -a_ullr -5.25555900000001 52.739645 10.334585 41.047037 -a_srs EPSG:4326 "D:\imageSource.png" "D:\imageEtape1.tiff" //etape2 redessiner ce GeoTIFF gdalwarp.exe -co COMPRESS=LZW -r bilinear -s_srs EPSG:4326 -t_srs EPSG:900913 "D:\imageEtape1.tiff" "D:\imageEtape2.tiff" //etape3 transformer le geoTiff tranformé en PNG gdal_translate.exe -of PNG -a_ullr -5.25555900000001 52.739645 10.334585 41.047037 -a_srs EPSG:4326 "D:\imageEtape2.tiff" "D:\imageFinale.png"
Espérant que cela servira à quelqu'un (je comprend mieux maintenant pourquoi OpenLayers bien que sachant afficher du kml ne gère pas les groundoverlay, cela reviendrai à ma situation de départ)
Hors ligne