diff --git a/js/dos/ext/vis/examples/graph3d/playground/datasource.html b/js/dos/ext/vis/examples/graph3d/playground/datasource.html new file mode 100644 index 0000000..7a59360 --- /dev/null +++ b/js/dos/ext/vis/examples/graph3d/playground/datasource.html @@ -0,0 +1,173 @@ + + +
++<?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 > 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 < $xmax; $x+=$xstep) { + for ($y = $ymin; $y < $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; +} + + +?> + ++ + +