/** * Created by Jon on 27/08/2016. */ /** * Where elevation data stored for charts api. * @type {Array} */ var elevationDataTables = []; var TROUGH = -1; var PEAK = 1; function makeElevationTables(resp){ console.log(resp); elevationDataTables.forEach(function (table) { table = null; }); elevationDataTables = []; resp.items.forEach(function (item) { var data = new google.visualization.DataTable(); data.setTableProperty('bearing', intFormatter.format(item.chainageline.bearingDegrees)); data.setTableProperty('length', item.chainageline.length); data.setTableProperty('direction', item.chainageline.direction); if (item.coords) { data.addColumn('number', 'Chainage'); data.addColumn('number', 'Elevation'); data.addColumn({'type': 'string', 'role': 'style'}); item.coords.forEach(function (elevCoord) { var ch = elevCoord.siteChainage; var elev = getReadableElevation(elevCoord); var pointStyle = null; switch (elevCoord.type) { case PEAK: pointStyle = 'point { size: 16; shape-type: triangle; fill-color: #ff0000; }'; break; case TROUGH: pointStyle = 'point { size: 16; shape-type: triangle; fill-color: #00ff00; rotation: 180;}'; break; } data.addRows([ [{v: elevCoord.siteChainage, f: ch + 'm'}, {v: elevCoord.elevation, f: elev +'m'}, pointStyle] ]); }); elevationDataTables.push(data); } }); elevationDataTables.sort(function (a,b) { var ba = a.getTableProperty('bearing'); var bb = b.getTableProperty('bearing'); return ba-bb; }) } function drawElevationData(parentDiv){ // remove old tables & meta data while (parentDiv.hasChildNodes()) { parentDiv.removeChild(parentDiv.lastChild); } var options = { curveType: 'function', width: '100%', height: 300, legend: 'none', pointSize: 7, dataOpacity: 0.3 }; for (var i=0; i '+ 'Bearing: ' + bearing + '° ' + 'Mt' + mh + ' ' ; var divToAdd2 = document.createElement('div') divToAdd2.id = divId; divToAdd2.className += 'elevation-chart'; var chart = new google.visualization.LineChart(divToAdd2); chart.draw(data, options); // Shows maths //var divToAddMath = document.createElement('div'); //divToAddMath.innerHTML=delimitMathJax(maths,false); parentDiv.appendChild(divToAdd1); parentDiv.appendChild(divToAdd2); //parentDiv.appendChild(divToAddMath); //MathJax.Hub.Queue(["Typeset", MathJax.Hub, divToAddMath]); } } function getReadableElevation(elevcoord){ return one_dpFormatter.format(elevcoord.elevation); }