Loading...
Searching...
No Matches
add_mouse_listeners.h
1
3const char* add_mouse_listeners = R"JS(/* src/js/add_mouse_listeners.js */
4function add_coord_monitor(frame, monitor){
5
6
7
8 const BBOX_KEY='data-bbox';
9 if (frame.hasAttribute(BBOX_KEY)){
10 const bbox = frame.getAttribute(BBOX_KEY).split(',');
11 const xLL = parseFloat(bbox[0]);
12 const yLL = parseFloat(bbox[1]);
13 const xUR = parseFloat(bbox[2]);
14 const yUR = parseFloat(bbox[3]);
15 console.log(bbox);
16 set_image_coord_tracker(frame, (x,y) => {
17 const width = xUR-xLL;
18 const height = yUR-yLL;
19 monitor.textContent = ''+Math.round(xLL + x*width)+','+Math.round(yLL + (1.0-y)*height)
20 })
21 }
22 else {
23 console.warn('element having class[', clsName, '] is missing attribute "' + BBOX_VARNAME, '"')
24 console.warn(frame)
25 }
26
27}
28
29function add_data_monitor(frame, monitor){
30 var data_arrays = panel.getElementsByClassName('DATA_ARRAY')
31 if (data_arrays.length>0){
32 var data_array = data_arrays[0]
33 const encoding = data_array.getAttribute('data-encoding').split(',');
34 // Under constr...
35 set_image_coord_tracker(frame, (x,y) => {
36 const width = xUR-xLL;
37 const height = yUR-yLL;
38 console.info(''+x+','+y)
39 })
40 }
41
42}
43
44function add_coord_tracker(){
45
46
47 //var elems = document.getElementsByClassName('MOUSE');
48 const elems = document.querySelectorAll(".MOUSE");
49
50 elems.forEach(panel => {
51
52 const frame = panel.querySelector(".IMAGE_BORDER");
53 const monitor = panel.querySelector('.MONITOR')
54
55 // Coordinate monitor
56 add_coord_monitor(frame, monitor)
57
58 var metadata = panel.querySelector(".SHARED");
59 var epsg = metadata.getAttribute('EPSGx');
60 if (metadata.hasAttribute('EPSG')){
61 epsg = metadata.getAttribute('EPSG');
62 console.info('EPSG='+epsg)
63 }
64
65 })
66}
67)JS";