updated removed
[home-automation.git] / weather.php
1 <?php ob_start('ob_gzhandler') ?>
2 <?
3 if (isset($_GET['item'])) {
4   $item=$_GET['item'];
5   $doc = new DOMDocument();
6   $doc->load('http://weather/weather/all-output.xml');
7   $arrFeeds = array();
8   foreach ($doc->getElementsByTagName('weather') as $node) {
9     $itemRSS = array ( 
10       $item => $node->getElementsByTagName($item)->item(0)->nodeValue,
11       );
12     array_push($arrFeeds, $itemRSS);
13   }
14 }
15 ?>
16 <!DOCTYPE html>
17 <html>
18 <head>
19     <script src="../libraries/RGraph.common.core.js" ></script>
20     <script src="../libraries/RGraph.common.context.js" ></script>
21     <script src="../libraries/RGraph.common.annotate.js" ></script>
22     <script src="../libraries/RGraph.common.tooltips.js" ></script>
23     <script src="../libraries/RGraph.common.zoom.js" ></script>
24     <script src="../libraries/RGraph.common.resizing.js" ></script>
25     <script src="../libraries/RGraph.meter.js" ></script>
26     <!--[if IE 8]><script src="../excanvas/excanvas.compressed.js"></script><![endif]-->
27
28     <script>
29         window.onload = function ()
30         {
31             var meter1 = new RGraph.Meter('meter1', -20, 120, <? echo $itemRSS[$item]; ?>);
32             
33             var grad1 = meter1.context.createRadialGradient(meter1.canvas.width / 2,meter1.canvas.height - 25,0,meter1.canvas.width / 2,meter1.canvas.height - 25,100);
34             grad1.addColorStop(0, 'red');
35             grad1.addColorStop(1, 'white');
36
37             var grad2 = meter1.context.createRadialGradient(meter1.canvas.width / 2, meter1.canvas.height - 25,0,meter1.canvas.width / 2, meter1.canvas.height - 25,100);
38             grad2.addColorStop(0, 'green');
39             grad2.addColorStop(1, 'white');
40             
41             var grad3 = meter1.context.createRadialGradient(meter1.canvas.width / 2, meter1.canvas.height - 25,0,meter1.canvas.width / 2, meter1.canvas.height - 25,100);
42             grad3.addColorStop(0, 'blue');
43             grad3.addColorStop(1, 'white');
44  
45             //meter1.Set('chart.contextmenu', [['Zoom in', RGraph.Zoom], ['Show palette', RGraph.Showpalette], ['Clear annotations', function () {RGraph.Clear(meter1.canvas); meter1.Draw();}], null, ['Cancel', function () {}]]);
46             meter1.Set('chart.annotatable', false);
47             meter1.Set('chart.labels.position', 'inside');
48             meter1.Set('chart.title', '<? echo $itemRSS[$item]; ?>');
49             meter1.Set('chart.title.vpos', 0.5);
50             meter1.Set('chart.title.color', 'black');
51             meter1.Set('chart.red.color', grad3);
52             meter1.Set('chart.yellow.color', grad2);
53             meter1.Set('chart.green.color', grad1);
54             meter1.Set('chart.red.start', -20);
55             meter1.Set('chart.red.end', 55);
56             meter1.Set('chart.yellow.start', 55);
57             meter1.Set('chart.yellow.end', 90);
58             meter1.Set('chart.green.start', 90);
59             meter1.Set('chart.green.end', 120);
60             meter1.Set('chart.shadow', true);
61             meter1.Set('chart.shadow.color', 'gray');
62             meter1.Set('chart.shadow.offsetx', 0);
63             meter1.Set('chart.shadow.offsety', 0);
64             meter1.Set('chart.shadow.blur', 15);
65             meter1.Set('chart.zoom.hdir', 'center');
66             meter1.Set('chart.zoom.vdir', 'center');
67             meter1.Set('chart.contextmenu', [['Clear', function () {RGraph.Clear(meter1.canvas); meter1.Draw();}]]);
68             meter1.Draw();
69
70         }
71     </script>
72 </head>
73 <body>
74
75     <div style="text-align: center">
76         <canvas id="meter1" width="300" height="150"><div class="canvasfallback">[No canvas support]</div></canvas>
77     </div>
78
79 </body>
80 </html>