<!DOCTYPE HTML>
|
|
<html>
|
|
|
|
<head>
|
|
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
|
|
<meta content="utf-8" http-equiv="encoding">
|
|
<title>Graph2d | Basic Example</title>
|
|
|
|
<style type="text/css">
|
|
body, html {
|
|
font-family: sans-serif;
|
|
}
|
|
|
|
</style>
|
|
|
|
<script src="../dist/vis.js"></script>
|
|
<script src="./locationTrace_processed.js"></script>
|
|
<script src="./timeTraveled_processed.js"></script>
|
|
<link href="../dist/vis.css" rel="stylesheet" type="text/css" />
|
|
|
|
<body>
|
|
<h2>Graph2d | Basic Example</h2>
|
|
<div style="width:700px; font-size:14px; text-align: justify;">
|
|
|
|
</div>
|
|
<br />
|
|
<div id="visualization"></div>
|
|
<div id="visualization2"></div>
|
|
<div id="visualization3"></div>
|
|
|
|
<script type="text/javascript">
|
|
var groups = new vis.DataSet();
|
|
groups.add({
|
|
id: 'accuracy',
|
|
content: 'accuracy'
|
|
});
|
|
//
|
|
groups.add({
|
|
id: 'latitude',
|
|
content: 'latitude'
|
|
})
|
|
|
|
groups.add({
|
|
id: 'longitude',
|
|
content: 'longitude'
|
|
})
|
|
groups.add({
|
|
id: 'timeTraveled',
|
|
content: 'timeTraveled',
|
|
options:{
|
|
yAxisOrientation:'right',
|
|
drawPoints:{style:"square", size:10}
|
|
}
|
|
})
|
|
groups.add({
|
|
id: 'db',
|
|
content: 'db',
|
|
options:{
|
|
yAxisOrientation:'right',
|
|
drawPoints:{style:"circle"}
|
|
}
|
|
})
|
|
|
|
|
|
var items = [];
|
|
var checkItems = [];
|
|
|
|
for (var i = 0; i < locationTraceData.length; i++) {
|
|
items.push({x:Number(locationTraceData[i].date+'000'), y:locationTraceData[i].value.accuracy === undefined ? 50 : locationTraceData[i].value.accuracy, group:'accuracy', label: {content:locationTraceData[i].value.event}});
|
|
items.push({x:Number(locationTraceData[i].date+'000'), y:locationTraceData[i].value.latitude === undefined ? -6.8 : locationTraceData[i].value.latitude, group:'latitude'});
|
|
items.push({x:Number(locationTraceData[i].date+'000'), y:locationTraceData[i].value.longitude === undefined ? 107.6 : locationTraceData[i].value.longitude, group:'longitude'});
|
|
}
|
|
|
|
for (var i = 0; i < timeTraveledData.length; i++) {
|
|
items.push({x:Number(timeTraveledData[i].date+'000'), y:timeTraveledData[i].value, group:'timeTraveled'});
|
|
}
|
|
|
|
var lastValue = 0;
|
|
var timeTraveled = 0;
|
|
var dt = 0;
|
|
var start = Number(locationTraceData[0].date);
|
|
var departed = false;
|
|
for (var i = 0; i < locationTraceData.length; i++) {
|
|
var event = locationTraceData[i].value.event;
|
|
if (event === 'depart') {
|
|
dt = Number(locationTraceData[i].date);
|
|
departed = true;
|
|
}
|
|
else {
|
|
if (departed === true) {
|
|
timeTraveled += Number(locationTraceData[i].date) - dt;
|
|
}
|
|
departed = false;
|
|
dt = 0;
|
|
}
|
|
checkItems.push({x:Number(locationTraceData[i].date+'000'), y:timeTraveled, group:'db'});
|
|
}
|
|
|
|
|
|
var matchingItems = [];
|
|
for (var i = 0; i < checkItems.length; i++) {
|
|
for (var j = 0; j < items.length; j++) {
|
|
if (items[j].group === 'timeTraveled') {
|
|
if (items[j].x === checkItems[i].x) {
|
|
console.log("check @ ", checkItems[i].x, items[j].y - checkItems[i].y);
|
|
matchingItems.push(checkItems[i]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
items = items.concat(checkItems)
|
|
|
|
var container = document.getElementById('visualization');
|
|
|
|
var dataset = new vis.DataSet(items);
|
|
var options = {
|
|
interpolation:false,
|
|
height:800,
|
|
sort:true
|
|
};
|
|
var graph2d = new vis.Graph2d(container, dataset,groups, options);
|
|
</script>
|
|
</body>
|
|
</html>
|