summaryrefslogtreecommitdiff
path: root/www/lib/vis/examples/graph3d/playground/datasource.html
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2016-10-28 13:31:36 -0700
committerPliable Pixels <pliablepixels@gmail.com>2016-10-28 13:31:36 -0700
commit05e761abca3ff42dbba371af0560b82707dfe7c0 (patch)
tree268cc06b931357a0ffad684961ff6d24eeec3b4b /www/lib/vis/examples/graph3d/playground/datasource.html
parent55a9e628760dc31400457099e4aaabc767beed70 (diff)
updated vis
Diffstat (limited to 'www/lib/vis/examples/graph3d/playground/datasource.html')
-rw-r--r--www/lib/vis/examples/graph3d/playground/datasource.html173
1 files changed, 173 insertions, 0 deletions
diff --git a/www/lib/vis/examples/graph3d/playground/datasource.html b/www/lib/vis/examples/graph3d/playground/datasource.html
new file mode 100644
index 00000000..7a593604
--- /dev/null
+++ b/www/lib/vis/examples/graph3d/playground/datasource.html
@@ -0,0 +1,173 @@
+<html>
+
+<head>
+ <title>Graph3d documentation</title>
+ <link rel='stylesheet' href='default.css' type='text/css'>
+
+ <link href="prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="prettify/prettify.js"></script>
+<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-61231638-1', 'auto');ga('send', 'pageview');</script></head>
+
+<body onload="prettyPrint();">
+
+<pre class="prettyprint lang-php">
+&lt;?php
+
+/*
+This datasource returns a response in the form of a google query response
+
+USAGE
+All parameters are optional
+datasource.php?xmin=0&xmax=314&xstepnum=25&ymin=0&ymax=314&ystepnum=25
+
+DOCUMENTATION
+http://code.google.com/apis/visualization/documentation/dev/implementing_data_source.html
+
+
+EXAMPLE OF A RESPONSE FILE
+
+Note that the reqId in the response must correspond with the reqId from the
+request.
+________________________________________________________________________________
+
+google.visualization.Query.setResponse({
+ version:'0.6',
+ reqId:'0',
+ status:'ok',
+ table:{
+ cols:[
+ {id:'x',
+ label:'x',
+ type:'number'},
+ {id:'y',
+ label:'y',
+ type:'number'},
+ {id:'value',
+ label:'value',
+ type:'number'}
+ ],
+ rows:[
+ {c:[{v:0}, {v:0}, {v:10.0}]},
+ {c:[{v:1}, {v:0}, {v:12.0}]},
+ {c:[{v:2}, {v:0}, {v:13.0}]},
+ {c:[{v:0}, {v:1}, {v:11.0}]},
+ {c:[{v:1}, {v:1}, {v:14.0}]},
+ {c:[{v:2}, {v:1}, {v:11.0}]}
+ ]
+ }
+});
+________________________________________________________________________________
+
+*/
+
+
+/**
+ * A custom function
+ */
+function custom($x, $y) {
+ $d = sqrt(pow($x/100, 2) + pow($y/100, 2));
+
+ return 50 * exp(-5 * $d / 10) * sin($d*5)
+}
+
+
+
+
+// retrieve parameters
+$default_stepnum = 25;
+
+$xmin = isset($_REQUEST['xmin']) ? (float)$_REQUEST['xmin'] : -100;
+$xmax = isset($_REQUEST['xmax']) ? (float)$_REQUEST['xmax'] : 100;
+$xstepnum = isset($_REQUEST['xstepnum']) ? (int)$_REQUEST['xstepnum'] : $default_stepnum;
+
+$ymin = isset($_REQUEST['ymin']) ? (float)$_REQUEST['ymin'] : -100;
+$ymax = isset($_REQUEST['ymax']) ? (float)$_REQUEST['ymax'] : 100;
+$ystepnum = isset($_REQUEST['ystepnum']) ? (int)$_REQUEST['ystepnum'] : $default_stepnum;
+
+// in the reply we must fill in the request id that came with the request
+$reqId = getReqId();
+
+// check for a maximum number of datapoints (for safety)
+if ($xstepnum * $ystepnum &gt; 10000) {
+ echo "google.visualization.Query.setResponse({
+ version:'0.6',
+ reqId:'$reqId',
+ status:'error',
+ errors:[{reason:'not_supported', message:'Maximum number of datapoints exceeded'}]
+ });";
+
+ exit;
+}
+
+
+// output the header part of the response
+echo "google.visualization.Query.setResponse({
+ version:'0.6',
+ reqId:'$reqId',
+ status:'ok',
+ table:{
+ cols:[
+ {id:'x',
+ label:'x',
+ type:'number'},
+ {id:'y',
+ label:'y',
+ type:'number'},
+ {id:'value',
+ label:'',
+ type:'number'}
+ ],
+ rows:[";
+
+// output the actual values
+$first = true;
+$xstep = ($xmax - $xmin) / $xstepnum;
+$ystep = ($ymax - $ymin) / $ystepnum;
+for ($x = $xmin; $x &lt; $xmax; $x+=$xstep) {
+ for ($y = $ymin; $y &lt; $ymax; $y+=$ystep) {
+ $value = custom($x,$y);
+
+ if (!$first) {
+ echo ",\n";
+ }
+ else {
+ echo "\n";
+ }
+ echo " {c:[{v:$x}, {v:$y}, {v:$value}]}";
+
+ $first = false;
+ }
+}
+
+
+// output the end part of the response
+echo "
+ ]
+ }
+});
+";
+
+
+/**
+ * Retrieve the request id from the get/post data
+ * @return {number} $reqId The request id, or 0 if not found
+ */
+function getReqId() {
+ $reqId = 0;
+
+ foreach ($_REQUEST as $req) {
+ if (substr($req, 0,6) == "reqId:") {
+ $reqId = substr($req, 6);
+ }
+ }
+
+ return $reqId;
+}
+
+
+?&gt;
+
+</pre>
+
+</body>
+</html>