Suite

Cliquez sur l'événement renvoyant un mauvais point de conteneur Y dans Leaflet ?


J'utilise QGIS Server et Leaflet pour afficher des géotiffs sur mon site Web. J'ai créé une fonction onMapClick qui utilise une requête GetFeatureInfo à QGIS Server qui renvoie la valeur du geotiff dans une fenêtre contextuelle. La fonction ressemble à ceci :

popup = new L.Popup({maxWidth: 400}); function onMapClick(e){ var BBOX = map.getBounds().toBBoxString(); var LARGEUR = map.getSize().x; var HAUTEUR = map.getSize().y; var X = map.layerPointToContainerPoint(e.layerPoint).x.toFixed(0) ; var Y = map.layerPointToContainerPoint(e.layerPoint).y.toFixed(0) ; var alayer = 'Ppt%20ElW%20(mm)'; var gfURL = URL + '?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&LAYERS=' + alayer + '&' + 'BBOX=' + BBOX + '&HEIGHT=' + HEIGHT + '&WIDTH=' + WIDTH + '&FORMAT=image %2Fpng&' + 'INFO_FORMAT=text%2Fhtml&X=' + X2 + '&Y=' + Y2 + '&CRS=EPSG:4326&QUERY_LAYERS='+alayer; $.ajax({ url : gfURL, dataType : "html", type : "GET", success : function(data){ popup.setContent(data); popup.setLatLng(e.latlng); map.openPopup(popup) ; } }); } ; map.on('click', onMapClick);

Pour une raison quelconque, la valeur Y calculée est légèrement inexacte. Il est proche, mais ne s'aligne pas complètement avec les cellules de la grille geotiff. Cela sera évident lorsque vous essayerez d'utiliser le site Web. L'imprécision varie avec le niveau de zoom. J'essaie de comprendre cela depuis des semaines et je n'arrive pas à avancer.


Vous devez supprimer leàFixe(0)fonction à la fin de lavar XetOui, ou au moins vous devez définir un argument beaucoup plus grand tel que 6 ou 8. Cette méthode "convertit un nombre en une chaîne, en conservant un nombre spécifié de décimales" de sorte que le nombre de décimales défini comme argument déterminera la précision de vos valeurs .


Voir la vidéo: MAISON CONTAINERVILLA MIRCEA (Octobre 2021).