Showing
1 changed file
with
130 additions
and
129 deletions
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html> |
3 | - <head> | 3 | + |
4 | +<head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | 5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
5 | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1" /> |
6 | <title>Highcharts Example</title> | 7 | <title>Highcharts Example</title> |
7 | 8 | ||
8 | <style type="text/css"></style> | 9 | <style type="text/css"></style> |
9 | - </head> | 10 | +</head> |
10 | - <body> | 11 | + |
12 | +<body> | ||
11 | <script src="highcharts.js"></script> | 13 | <script src="highcharts.js"></script> |
12 | <script src="modules/exporting.js"></script> | 14 | <script src="modules/exporting.js"></script> |
13 | <script src="modules/export-data.js"></script> | 15 | <script src="modules/export-data.js"></script> |
14 | 16 | ||
15 | - <div | 17 | + <div id="container1" style="width:1260px; height: 400px; margin: 0 auto"></div> |
16 | - id="container1" | ||
17 | - style="width:1260px; height: 400px; margin: 0 auto" | ||
18 | - ></div> | ||
19 | 18 | ||
20 | <div style="width:1275px; margin:0 auto;"> | 19 | <div style="width:1275px; margin:0 auto;"> |
21 | <div style="display: inline-block;"> | 20 | <div style="display: inline-block;"> |
22 | - <div | 21 | + <div id="container2" style="width:400px; height: 300px; padding:0; margin-left:0px;margin-right: 30px;"></div> |
23 | - id="container2" | ||
24 | - style="width:400px; height: 300px; padding:0; margin-left:0px;margin-right: 30px;" | ||
25 | - ></div> | ||
26 | </div> | 22 | </div> |
27 | <div style="display: inline-block;"> | 23 | <div style="display: inline-block;"> |
28 | - <div | 24 | + <div id="container3" style="width:400px; height: 300px; padding:0; margin-left:0px;margin-right: 30px;"></div> |
29 | - id="container3" | ||
30 | - style="width:400px; height: 300px; padding:0; margin-left:0px;margin-right: 30px;" | ||
31 | - ></div> | ||
32 | </div> | 25 | </div> |
33 | 26 | ||
34 | <div style="display: inline-block;"> | 27 | <div style="display: inline-block;"> |
35 | - <div | 28 | + <div id="container4" style="width:400px; height: 300px; padding:0; margin-left:0px;"></div> |
36 | - id="container4" | ||
37 | - style="width:400px; height: 300px; padding:0; margin-left:0px;" | ||
38 | - ></div> | ||
39 | </div> | 29 | </div> |
40 | </div> | 30 | </div> |
41 | 31 | ||
42 | 32 | ||
43 | -<script src="/socket.io/socket.io.js"></script> | 33 | + <script src="/socket.io/socket.io.js"></script> |
44 | -<script> | 34 | + <script> |
45 | - let client_data={ | 35 | + var socket = io.connect('/', { transports: ['websocket'], upgrade: false }); |
46 | - birth : "<%=birth%>", | 36 | + socket.emit("connection", "client in"); |
47 | - name : "<%=name%>" | 37 | + socket.on("weatherInfo_minutely_send_to_client", (info) => { //서버에서 client에게 메세지 전송 |
48 | - } | ||
49 | - var socket = io.connect('/',{transports: ['websocket'],upgrade:false}); | ||
50 | - socket.emit("connection",client_data); | ||
51 | - socket.on("weatherInfo_minutely_send_to_client",(info)=>{ //서버에서 client에게 메세지 전송 | ||
52 | console.log(info); | 38 | console.log(info); |
39 | + | ||
40 | + var date = new Date().getTime(); | ||
41 | + | ||
42 | + chart1.series[0].addPoint({ | ||
43 | + x: date, | ||
44 | + y: info.death | ||
45 | + }) | ||
46 | + | ||
47 | + chart2.series[0].addPoint({ | ||
48 | + x: date, | ||
49 | + y: info.temperature | ||
50 | + }) | ||
51 | + | ||
52 | + chart3.series[0].addPoint({ | ||
53 | + x: date, | ||
54 | + y: info.wind | ||
55 | + }) | ||
56 | + | ||
57 | + chart4.series[0].addPoint({ | ||
58 | + x: date, | ||
59 | + y: info.rain | ||
60 | + }) | ||
61 | + | ||
53 | }); | 62 | }); |
54 | -</script> | 63 | + </script> |
55 | - <!-- 첫번째 그래프 --> | ||
56 | <script type="text/javascript"> | 64 | <script type="text/javascript"> |
57 | - Highcharts.chart("container1", { | 65 | + //사망률 |
66 | + var chart1 = Highcharts.chart("container1", { | ||
58 | chart: { | 67 | chart: { |
59 | type: "areaspline", | 68 | type: "areaspline", |
60 | animation: Highcharts.svg, // don't animate in old IE | 69 | animation: Highcharts.svg, // don't animate in old IE |
61 | marginRight: 10, | 70 | marginRight: 10, |
62 | - events: { | 71 | + // events: { |
63 | - load: function() { | 72 | + // load: function () { |
64 | - // set up the updating of the chart each second | 73 | + // // set up the updating of the chart each second |
65 | - var series = this.series[0]; | 74 | + // var series = this.series[0]; |
66 | - setInterval(function() { | 75 | + // setInterval(function () { |
67 | - var x = new Date().getTime(), // 현재 시간 | 76 | + // var x = new Date().getTime(), // 현재 시간 |
68 | - y = 0; //여기에 새로 넣을 값 | 77 | + // y = 0; //여기에 새로 넣을 값 |
69 | - series.addPoint([x, y], true, true); | 78 | + // series.addPoint([x, y], true, true); |
70 | - }, 60000); //1000=1초 -> 1분=60000 | 79 | + // }, 60000); //1000=1초 -> 1분=60000 |
71 | - } | 80 | + // } |
72 | - } | 81 | + // } |
73 | }, | 82 | }, |
74 | 83 | ||
75 | time: { | 84 | time: { |
... | @@ -77,7 +86,7 @@ | ... | @@ -77,7 +86,7 @@ |
77 | }, | 86 | }, |
78 | 87 | ||
79 | title: { | 88 | title: { |
80 | - text: "<%=name%>님의 실시간 사망률" | 89 | + text: "실시간 사망률" |
81 | }, | 90 | }, |
82 | xAxis: { | 91 | xAxis: { |
83 | type: "datetime", | 92 | type: "datetime", |
... | @@ -85,7 +94,11 @@ | ... | @@ -85,7 +94,11 @@ |
85 | }, | 94 | }, |
86 | yAxis: { | 95 | yAxis: { |
87 | title: { | 96 | title: { |
88 | - text: "Value" | 97 | + text: "<%=name%>님의 실시간 사망률" |
98 | + }, | ||
99 | + xAxis: { | ||
100 | + type: "datetime", | ||
101 | + tickPixelInterval: 150 | ||
89 | }, | 102 | }, |
90 | plotLines: [ | 103 | plotLines: [ |
91 | { | 104 | { |
... | @@ -118,14 +131,13 @@ | ... | @@ -118,14 +131,13 @@ |
118 | series: [ | 131 | series: [ |
119 | { | 132 | { |
120 | name: "사망률", | 133 | name: "사망률", |
121 | - data: (function() { | 134 | + data: (function () { |
122 | var deathArr = [], | 135 | var deathArr = [], |
123 | time = new Date().getTime(); | 136 | time = new Date().getTime(); |
124 | - var length= <%=dataLen%>; | 137 | + var length = <%=dataLen%>; |
125 | - var i=-9; //얘는 시간계산용 | 138 | + var i = -9; //얘는 시간계산용 |
126 | - var j=0; //얘는 반복문용 | 139 | + var j = 0; //얘는 반복문용 |
127 | - for(;j<10-length;j++) | 140 | + for (; j < 10 - length; j++) { |
128 | - { | ||
129 | deathArr.push({ | 141 | deathArr.push({ |
130 | x: time + i * 60000, | 142 | x: time + i * 60000, |
131 | y: 0 | 143 | y: 0 |
... | @@ -133,9 +145,9 @@ | ... | @@ -133,9 +145,9 @@ |
133 | i++; | 145 | i++; |
134 | } | 146 | } |
135 | 147 | ||
136 | - <%probArr.forEach((probArr)=>{%> | 148 | + <% probArr.forEach((probArr) => {%> |
137 | var temp; | 149 | var temp; |
138 | - temp= <%=probArr%>; | 150 | + temp = <%=probArr %>; |
139 | 151 | ||
140 | // for(;j<10;j++) | 152 | // for(;j<10;j++) |
141 | // { | 153 | // { |
... | @@ -152,33 +164,30 @@ | ... | @@ -152,33 +164,30 @@ |
152 | }) | 164 | }) |
153 | i++; | 165 | i++; |
154 | 166 | ||
155 | - <%})%> | 167 | + <%}) %> |
156 | 168 | ||
157 | return deathArr; | 169 | return deathArr; |
158 | })() | 170 | })() |
159 | } | 171 | } |
160 | ] | 172 | ] |
161 | }); | 173 | }); |
162 | - </script> | 174 | + //기온 |
163 | - | 175 | + var chart2 = Highcharts.chart("container2", { |
164 | - <!-- 두번째 그래프 --> | ||
165 | - <script type="text/javascript"> | ||
166 | - Highcharts.chart("container2", { | ||
167 | chart: { | 176 | chart: { |
168 | type: "spline", | 177 | type: "spline", |
169 | animation: Highcharts.svg, // don't animate in old IE | 178 | animation: Highcharts.svg, // don't animate in old IE |
170 | marginRight: 10, | 179 | marginRight: 10, |
171 | - events: { | 180 | + // events: { |
172 | - load: function() { | 181 | + // load: function () { |
173 | - // set up the updating of the chart each second | 182 | + // // set up the updating of the chart each second |
174 | - var series = this.series[0]; | 183 | + // var series = this.series[0]; |
175 | - setInterval(function() { | 184 | + // setInterval(function () { |
176 | - var x = new Date().getTime(), // 현재 시간 | 185 | + // var x = new Date().getTime(), // 현재 시간 |
177 | - y = 0; // | 186 | + // y = 0; // |
178 | - series.addPoint([x, y], true, true); | 187 | + // series.addPoint([x, y], true, true); |
179 | - }, 60000); //1000=1초 | 188 | + // }, 60000); //1000=1초 |
180 | - } | 189 | + // } |
181 | - } | 190 | + // } |
182 | }, | 191 | }, |
183 | 192 | ||
184 | time: { | 193 | time: { |
... | @@ -227,14 +236,13 @@ | ... | @@ -227,14 +236,13 @@ |
227 | series: [ | 236 | series: [ |
228 | { | 237 | { |
229 | name: "기온", | 238 | name: "기온", |
230 | - data: (function() { | 239 | + data: (function () { |
231 | var tempArr = [], | 240 | var tempArr = [], |
232 | time = new Date().getTime(); | 241 | time = new Date().getTime(); |
233 | - var length= <%=dataLen%>; | 242 | + var length = <%=dataLen%>; |
234 | - var i=-9; | 243 | + var i = -9; |
235 | - var j=0; | 244 | + var j = 0; |
236 | - for(j;j<10-length;j++) | 245 | + for (j; j < 10 - length; j++) { |
237 | - { | ||
238 | tempArr.push({ | 246 | tempArr.push({ |
239 | x: time + i * 60000, | 247 | x: time + i * 60000, |
240 | y: 0 | 248 | y: 0 |
... | @@ -242,9 +250,9 @@ | ... | @@ -242,9 +250,9 @@ |
242 | i++; | 250 | i++; |
243 | } | 251 | } |
244 | 252 | ||
245 | - <%ptArr.forEach((ptArr)=>{%> | 253 | + <% ptArr.forEach((ptArr) => {%> |
246 | var temp; | 254 | var temp; |
247 | - temp= <%=ptArr%>; | 255 | + temp = <%=ptArr %>; |
248 | 256 | ||
249 | // for(j;j<10;j++) | 257 | // for(j;j<10;j++) |
250 | // { | 258 | // { |
... | @@ -261,33 +269,30 @@ | ... | @@ -261,33 +269,30 @@ |
261 | }) | 269 | }) |
262 | i++; | 270 | i++; |
263 | 271 | ||
264 | - <%})%> | 272 | + <%}) %> |
265 | 273 | ||
266 | return tempArr; | 274 | return tempArr; |
267 | })() | 275 | })() |
268 | } | 276 | } |
269 | ] | 277 | ] |
270 | }); | 278 | }); |
271 | - </script> | 279 | + //풍속 |
272 | - | 280 | + var chart3 = Highcharts.chart("container3", { |
273 | - <!-- 세번째 그래프 --> | ||
274 | - <script type="text/javascript"> | ||
275 | - Highcharts.chart("container3", { | ||
276 | chart: { | 281 | chart: { |
277 | type: "spline", | 282 | type: "spline", |
278 | animation: Highcharts.svg, // don't animate in old IE | 283 | animation: Highcharts.svg, // don't animate in old IE |
279 | marginRight: 10, | 284 | marginRight: 10, |
280 | - events: { | 285 | + // events: { |
281 | - load: function() { | 286 | + // load: function () { |
282 | - // set up the updating of the chart each second | 287 | + // // set up the updating of the chart each second |
283 | - var series = this.series[0]; | 288 | + // var series = this.series[0]; |
284 | - setInterval(function() { | 289 | + // setInterval(function () { |
285 | - var x = new Date().getTime(), // 현재 시간 | 290 | + // var x = new Date().getTime(), // 현재 시간 |
286 | - y = 0; // | 291 | + // y = 0; // |
287 | - series.addPoint([x, y], true, true); | 292 | + // series.addPoint([x, y], true, true); |
288 | - }, 60000); //1000=1초 | 293 | + // }, 60000); //1000=1초 |
289 | - } | 294 | + // } |
290 | - } | 295 | + // } |
291 | }, | 296 | }, |
292 | 297 | ||
293 | time: { | 298 | time: { |
... | @@ -336,14 +341,13 @@ | ... | @@ -336,14 +341,13 @@ |
336 | series: [ | 341 | series: [ |
337 | { | 342 | { |
338 | name: "풍속", | 343 | name: "풍속", |
339 | - data: (function() { | 344 | + data: (function () { |
340 | var windArr = [], | 345 | var windArr = [], |
341 | time = new Date().getTime(); | 346 | time = new Date().getTime(); |
342 | - var length= <%=dataLen%>; | 347 | + var length = <%=dataLen%>; |
343 | - var i=-9; | 348 | + var i = -9; |
344 | - var j=0; | 349 | + var j = 0; |
345 | - for(j;j<10-length;j++) | 350 | + for (j; j < 10 - length; j++) { |
346 | - { | ||
347 | windArr.push({ | 351 | windArr.push({ |
348 | x: time + i * 60000, | 352 | x: time + i * 60000, |
349 | y: 0 | 353 | y: 0 |
... | @@ -351,9 +355,9 @@ | ... | @@ -351,9 +355,9 @@ |
351 | i++; | 355 | i++; |
352 | } | 356 | } |
353 | 357 | ||
354 | - <%wsArr.forEach((wsArr)=>{%> | 358 | + <% wsArr.forEach((wsArr) => {%> |
355 | var temp; | 359 | var temp; |
356 | - temp= <%=wsArr%>; | 360 | + temp = <%=wsArr %>; |
357 | 361 | ||
358 | // for(j;j<10;j++) | 362 | // for(j;j<10;j++) |
359 | // { | 363 | // { |
... | @@ -370,33 +374,30 @@ | ... | @@ -370,33 +374,30 @@ |
370 | }) | 374 | }) |
371 | i++; | 375 | i++; |
372 | 376 | ||
373 | - <%})%> | 377 | + <%}) %> |
374 | 378 | ||
375 | return windArr; | 379 | return windArr; |
376 | })() | 380 | })() |
377 | } | 381 | } |
378 | ] | 382 | ] |
379 | }); | 383 | }); |
380 | - </script> | 384 | + //강수량 |
381 | - | 385 | + var chart4 = Highcharts.chart("container4", { |
382 | - <!-- 네번째 그래프 --> | ||
383 | - <script type="text/javascript"> | ||
384 | - Highcharts.chart("container4", { | ||
385 | chart: { | 386 | chart: { |
386 | type: "spline", | 387 | type: "spline", |
387 | animation: Highcharts.svg, // don't animate in old IE | 388 | animation: Highcharts.svg, // don't animate in old IE |
388 | marginRight: 10, | 389 | marginRight: 10, |
389 | - events: { | 390 | + // events: { |
390 | - load: function() { | 391 | + // load: function () { |
391 | - // set up the updating of the chart each second | 392 | + // // set up the updating of the chart each second |
392 | - var series = this.series[0]; | 393 | + // var series = this.series[0]; |
393 | - setInterval(function() { | 394 | + // setInterval(function () { |
394 | - var x = new Date().getTime(), // 현재 시간 | 395 | + // var x = new Date().getTime(), // 현재 시간 |
395 | - y = 0; // | 396 | + // y = 0; // |
396 | - series.addPoint([x, y], true, true); | 397 | + // series.addPoint([x, y], true, true); |
397 | - }, 60000); //1000=1초 | 398 | + // }, 60000); //1000=1초 |
398 | - } | 399 | + // } |
399 | - } | 400 | + // } |
400 | }, | 401 | }, |
401 | 402 | ||
402 | time: { | 403 | time: { |
... | @@ -445,14 +446,13 @@ | ... | @@ -445,14 +446,13 @@ |
445 | series: [ | 446 | series: [ |
446 | { | 447 | { |
447 | name: "강수량", | 448 | name: "강수량", |
448 | - data: (function() { | 449 | + data: (function () { |
449 | var rainArr = [], | 450 | var rainArr = [], |
450 | time = new Date().getTime(); | 451 | time = new Date().getTime(); |
451 | - var length= <%=dataLen%>; | 452 | + var length = <%=dataLen%>; |
452 | - var i=-9; | 453 | + var i = -9; |
453 | - var j=0; | 454 | + var j = 0; |
454 | - for(j;j<10-length;j++) | 455 | + for (j; j < 10 - length; j++) { |
455 | - { | ||
456 | rainArr.push({ | 456 | rainArr.push({ |
457 | x: time + i * 60000, | 457 | x: time + i * 60000, |
458 | y: 0 | 458 | y: 0 |
... | @@ -460,9 +460,9 @@ | ... | @@ -460,9 +460,9 @@ |
460 | i++; | 460 | i++; |
461 | } | 461 | } |
462 | 462 | ||
463 | - <%rainArr.forEach((rainArr)=>{%> | 463 | + <% rainArr.forEach((rainArr) => {%> |
464 | var temp; | 464 | var temp; |
465 | - temp= <%=rainArr%>; | 465 | + temp = <%=rainArr %>; |
466 | 466 | ||
467 | // for(j;j<10;j++) | 467 | // for(j;j<10;j++) |
468 | // { | 468 | // { |
... | @@ -479,7 +479,7 @@ | ... | @@ -479,7 +479,7 @@ |
479 | }) | 479 | }) |
480 | i++; | 480 | i++; |
481 | 481 | ||
482 | - <%})%> | 482 | + <%}) %> |
483 | 483 | ||
484 | return rainArr; | 484 | return rainArr; |
485 | })() | 485 | })() |
... | @@ -487,5 +487,6 @@ | ... | @@ -487,5 +487,6 @@ |
487 | ] | 487 | ] |
488 | }); | 488 | }); |
489 | </script> | 489 | </script> |
490 | - </body> | 490 | +</body> |
491 | + | ||
491 | </html> | 492 | </html> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment