#1 Thu 19 December 2019 11:03
- ljrox
- Participant occasionnel
- Date d'inscription: 21 Aug 2014
- Messages: 15
[openlayers] Problème de centrage de carte
Bonjour,
Je travaille sur un portail web en utilisant Openlayers et l'API de l'IGN, je rencontre une difficulté de centrage de carte.
J'ai repris mon code en réalisant une page avec le code minimal, j'utilise un fond de carte ortho photo de l'IGN (j'ai fait des tests avec d'autres fonds (OSM, Bing, ...) le problème est identique).
Je souhaite centrer la carte aux coordonnées WGS84 [48.987297993937,4.5176115407113] correspondant au centre d'un village.
En utilisant ces coordonnées dans openlayers, la carte se centre plusieurs centaines de mètres au nord du point souhaité, avec un léger décalage vers l'est.
En utilisant les coordonnées dans googleMaps ou géoportail, les cartes se centrent correctement à la position souhaitée.
J'utilise la méthode ol.proj.fromLonLat() permettant de convertir les coordonnées (En ayant pris soin d'inverser la longitude et la latitude).
Code:
function init(){ var coords = [4.5176115407113,48.987297993937]; var orthoPhoto = new ol.layer.GeoportalWMTS({layer: "ORTHOIMAGERY.ORTHOPHOTOS" }) var map = new ol.Map({ target: 'viewerContainer', layers: [ orthoPhoto, ], view: new ol.View({ center: ol.proj.fromLonLat(coords), zoom: 18, }) }); }
Je suppose qu'il s'agit d'un problème de projection. J'ai tenté de modifier la projection de la vue en EPSG:4326, mais cela n'a pas fonctionné.
Un console.log de ol.proj.fromLonLat(coords) donne ces coordonnées [502898.21631379804, 6272706.404097287], théoriquement en EPSG:3857
J'ai testé plusieurs versions d'openlayers (v4, v5, v6), le problème est identique.
Après plusieurs jours passés à chercher, je n'arrive pas à trouver la solution.
J'espère que vous pourrez me venir en aide.
Merci et bonne journée.
Hors ligne
#2 Tue 24 December 2019 12:08
- ljrox
- Participant occasionnel
- Date d'inscription: 21 Aug 2014
- Messages: 15
Re: [openlayers] Problème de centrage de carte
Bonjour,
En continuant mes tests, j'ai placé un point sur une nouvelle couche vecteur, en utilisant les mêmes coordonnées utilisées pour le centrage de la vue.
Ce point se positionne au bon endroit.
Le problème vient donc de l'objet ol.View.
J'ai également remarqué que lorsque je modifie l'attribut 'zoom', la vue se centre ailleurs ... sans avoir changé les coordonnées ...
Je reste toujours sans solution.
J'en profite pour vous souhaiter de bonnes fêtes de fin d'année.
Bonne journée.
Hors ligne
#3 Tue 24 December 2019 12:09
- ljrox
- Participant occasionnel
- Date d'inscription: 21 Aug 2014
- Messages: 15
Re: [openlayers] Problème de centrage de carte
Bonjour,
En continuant mes tests, j'ai placé un point sur une nouvelle couche vecteur, en utilisant les mêmes coordonnées utilisées pour le centrage de la vue.
Ce point se positionne au bon endroit.
Le problème vient donc de l'objet ol.View.
J'ai également remarqué que lorsque je modifie l'attribut 'zoom', la vue se centre ailleurs ... sans avoir changé les coordonnées ...
Je reste toujours sans solution.
J'en profite pour vous souhaiter de bonnes fêtes de fin d'année.
Bonne journée.
Hors ligne
#4 Tue 24 December 2019 12:09
- ljrox
- Participant occasionnel
- Date d'inscription: 21 Aug 2014
- Messages: 15
Re: [openlayers] Problème de centrage de carte
Bonjour,
En continuant mes tests, j'ai placé un point sur une nouvelle couche vecteur, en utilisant les mêmes coordonnées utilisées pour le centrage de la vue.
Ce point se positionne au bon endroit.
Le problème vient donc de l'objet ol.View.
J'ai également remarqué que lorsque je modifie l'attribut 'zoom', la vue se centre ailleurs ... sans avoir changé les coordonnées ...
Je reste toujours sans solution.
J'en profite pour vous souhaiter de bonnes fêtes de fin d'année.
Bonne journée.
Hors ligne
#5 Tue 24 December 2019 13:45
- ljrox
- Participant occasionnel
- Date d'inscription: 21 Aug 2014
- Messages: 15
Re: [openlayers] Problème de centrage de carte
J'ai finalement trouvé le problème, et ce n'était en rien Openlayers.
Cela venait finalement du code css, la div contenant la carte avait une hauteur de 945%. Après l'avoir repassé à 100%, tout est revenu à la normale.
Hors ligne