Daha çox

Leafletdə səhv Y konteyner nöqtəsini qaytaran hadisə tıklansın?

Leafletdə səhv Y konteyner nöqtəsini qaytaran hadisə tıklansın?


Veb saytımda geotiffləri göstərmək üçün QGIS Server və Leaflet -dən istifadə edirəm. Bir pop -upda geotiff dəyərini qaytaran QGIS Serverə GetFeatureInfo tələbi istifadə edən onMapClick funksiyası yaratdım. Funksiya belə görünür:

popup = yeni L. Popup ({maxWidth: 400}); onMapClick funksiyası (e) {var BBOX = map.getBounds (). toBBoxString (); var WIDTH = map.getSize (). x; var HEIGHT = 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 = şəkil %2Fpng & ' +' INFO_FORMAT = mətn%2Fhtml & X = ' + X2 +' & Y = ' + Y2 +' & CRS = EPSG: 4326 & QUERY_LAYERS = ' + alayer; $ .ajax ({url: gfURL, dataType: "html", yazın: "GET", uğur: funksiya (data) {popup.setContent (data); popup.setLatLng (e.latlng); map.openPopup (popup) ;}}); }; map.on ('klik', onMapClick);

Nədənsə hesablanmış Y dəyəri bir qədər qeyri -dəqiqdir. Yaxındır, lakin geotiff şəbəkə hüceyrələri ilə tam uyğun gəlmir. Veb saytdan istifadə etməyə çalışdığınız zaman aydın olacaq. Qeyri -dəqiqlik zoom səviyyəsinə görə dəyişir. Həftələrdir bunu anlamağa çalışıram və heç yerə gedə bilmirəm.


Silmək lazımdırSabit (0)sonunda işləyinvar XYvə ya ən azından 6 və ya 8 kimi daha böyük bir arqument təyin etməlisiniz. Bu üsul "müəyyən edilmiş ondalık sayını saxlayaraq bir sətrə çevirir", buna görə arqument olaraq təyin olunan ondalık sayı dəyərlərinizin düzgünlüyünü təyin edəcək. .


Videoya baxın: Üzüm şlamlarının cücərməsi