var C_WIDTH2 = 1535; var C_HEIGHT2 = 395; var G_XMIN2 = 10; var G_XMAX2 = C_WIDTH2 - 40; var G_YMIN2 = 25; var G_YMAX2 = C_HEIGHT2 - 50; var lp = new Array(); var l_temp = new Array(); function draw_long_graph(type) { var div = (graph_hour[type][hh[type]] - 1) * 3; if(type < suion_list.length) { lp[type] = past_suion_set(Format_type[type], data[type], div, data_offset[type] - graph_hour[type][hh[type]]); } var canvas = document.getElementById('hidden'); var context = canvas.getContext('2d'); var min = minTemp[type]; var max = maxTemp[type]; if(!(type < suion_list.length)) { min = kion_minTemp; max = kion_maxTemp; } context.clearRect(0, 0, C_WIDTH2, C_HEIGHT2); context.fillStyle = "#ffffff"; context.fillRect(0, 0, C_WIDTH2, C_HEIGHT2); context.fillStyle = "#000000"; // context.beginPath(); drawLongAxis(context); if(hh[type] < 2) { drawLong_gray(context, div, data_offset[type] - graph_hour[type][hh[type]]); } else { var date = new Date(load_date); drawLong_gray(context, div, date.getHours()); } if(hh[type] < 2) { drawLong_grid(context, min, max, (div + 1)); } else { switch(hh[type]) { case 2: drawLong_grid(context, min, max, 25); break; case 3: drawLong_grid(context, min, max, 94); break; case 4: drawLong_grid(context, min, max, 184); break; } } context.strokeStyle = "#000000"; if(type < suion_list.length) { for(var i = 0; i < deep_list['全体'].length; i++) { if(deep_list[suion_list[type]][i] == "") { continue; } if(checkList[i]) { switch(Format_type[type]) { case 2: case 4: draw_long_data(context, type, i, min, max, div * 2); break; case -1: case 5: case 6: draw_long_data(context, type, i, min, max, div * 6); break; default: draw_long_data(context, type, i, min, max, div); break; } } } } else { for(var i = 0; i < temp_list.length; i++) { if(checkList3[i]) { l_temp[i] = past_temp_set(temp[i], div, data_offset[suion_list.length] - graph_hour[suion_list.length][hh[suion_list.length]]); draw_long_temp(context, i, min, max, div); } } } context.fillStyle = "#ffffff"; context.fillRect(0, G_YMAX2 + 1, C_WIDTH2 - 30, C_HEIGHT2); context.fillStyle = "#000000"; if(hh[type] < 2) { drawLongX_Axis(context, div, data_offset[type] - graph_hour[type][hh[type]]); } else { switch(hh[type]) { case 2: drawLongX_Axis_day(context, 24, data_offset[type] - graph_hour[type][hh[type]]); break; case 3: drawLongX_Axis_day(context, 93, data_offset[type] - graph_hour[type][hh[type]]); break; case 4: drawLongX_Axis_day(context, 183, data_offset[type] - graph_hour[type][hh[type]]); break; } } } function drawLongAxis(context) { context.beginPath(); context.strokeStyle = "#000000"; context.moveTo(G_XMIN2, G_YMAX2); context.lineTo(C_WIDTH2, G_YMAX2); context.closePath(); context.stroke(); } function draw_long_data(context, type, num, min, max, div) { var count = 0; for(i = min; i < max; i++) count++; var pos1 = {x: -1, y: -1}; var pos2 = {x: -1, y: -1}; for(i = 0; i < lp[type].length; i++) { if(lp[type][i] == -1) { continue; } /* if(num == 1 && Format_type[type] < 3) { continue; } */ if(num >= 2 && Format_type[type] == 3) { continue; } //if(num >= 2 && Format_type[type] < 3) { //if(get_suion(lp, type, num + 1, i) == "-") continue; //} else { if(get_suion(lp, type, num + 2, i) == "-") continue; //} pos1.x = G_XMIN2 + i * ((G_XMAX2 - G_XMIN2) / div); //if(num >= 2 && Format_type[type] < 3) { //pos1.y = G_YMAX2 - ((G_YMAX2 - G_YMIN2) / count) * (get_suion(lp, type, num + 1, i) - min); //} else { pos1.y = G_YMAX2 - ((G_YMAX2 - G_YMIN2) / count) * (get_suion(lp, type, num + 2, i) - min); //} if(pos2.x == -1 && pos2.y == -1) { context.moveTo(pos1.x, pos1.y); if(hh[type] < 2) { drawPoint(context, pos1.x, pos1.y, 1.7 - (0.2 * div / 72)); } } else { context.beginPath(); context.strokeStyle = color_table[num]; context.moveTo(pos2.x, pos2.y); context.lineTo(pos1.x, pos1.y); context.closePath(); context.stroke(); if(hh[type] < 2) { drawPoint(context, pos1.x, pos1.y, 1.7 - (0.2 * div / 72)); } } if(i < lp[type].length - 1) { pos2.x = pos1.x; pos2.y = pos1.y; } } } function draw_long_temp(context, type, min, max, div) { var count = 0; for(var i = min; i < max; i++) count++; var pos1 = {x: -1, y: -1}; var pos2 = {x: -1, y: -1}; for(var i = 0; i < l_temp[type].length; i++) { if(l_temp[type][i] == -1) { continue; } pos1.x = G_XMIN2 + i * ((G_XMAX2 - G_XMIN2) / div); pos1.y = G_YMAX2 - ((G_YMAX2 - G_YMIN2) / count) * (l_temp[type][i][1] - min); if(pos2.x == -1 && pos2.y == -1) { context.moveTo(pos1.x, pos1.y); drawPoint(context, pos1.x, pos1.y, 1.7 - (0.2 * div / 72)); } else { context.beginPath(); context.strokeStyle = color_table2[type]; context.moveTo(pos2.x, pos2.y); context.lineTo(pos1.x, pos1.y); context.closePath(); context.stroke(); drawPoint(context, pos1.x, pos1.y, 1.7 - (0.2 * div / 72)); } if(i < l_temp[type].length - 1) { pos2.x = pos1.x; pos2.y = pos1.y; } } } function drawLongX_Axis(context, div, offset) { var date = new Date(load_date); date.setHours(date.getHours() - offset); date.setHours(date.getHours() - div); var hour = date.getHours(); context.beginPath(); context.strokeStyle = "#000000"; context.font = "9pt Arial"; for(var i = 0; i <= div / 2; i++) { if(hour == 0) { context.fillText(date.getDate() + "日", ((G_XMIN2 - 10) + i *(2*(G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 5); } context.fillText(hour + "時", ((G_XMIN2 - 10) + i * ( 2 * (G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 35); context.moveTo((G_XMIN2 + i * (2*((G_XMAX2-G_XMIN2)/div))), C_HEIGHT2 - 52); context.lineTo((G_XMIN2 + i * (2*((G_XMAX2-G_XMIN2)/div))), C_HEIGHT2 - 48); date.setHours(date.getHours() + 2); hour = date.getHours(); } date = new Date(load_date); date.setHours(date.getHours() - offset); date.setHours((date.getHours() + 1) - div); hour = date.getHours(); for(i = 0; i < div / 2; i++) { if(hour == 0) { context.fillText(date.getDate() + "日", ((G_XMIN2 - 10) + ((G_XMAX2-G_XMIN2)/div) + i *(2*(G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 5); } context.fillText(hour + "時", ((G_XMIN2 - 10) + ((G_XMAX2-G_XMIN2)/div) + i * (2 * ((G_XMAX2-G_XMIN2)/div))), C_HEIGHT2 - 20); context.moveTo(G_XMIN2 + ((G_XMAX2-G_XMIN2)/div) + i * (2*((G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 52); context.lineTo(G_XMIN2 + ((G_XMAX2-G_XMIN2)/div) + i * (2*((G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 48); date.setHours(date.getHours() + 2); hour = date.getHours(); } context.closePath(); context.stroke(); } function drawLongX_Axis_day(context, div, offset) { var dt = new Date(load_date); dt.setHours(dt.getHours() - offset); dt.setDate(dt.getDate() - (div - 1)); var date = dt.getDate(); context.beginPath(); context.strokeStyle = "#000000"; context.font = "9pt Arial"; for(var i = 0; i <= div / 2; i++) { context.fillText(date + "日", ((G_XMIN2 - 10) + i * ( 2 * (G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 35); context.moveTo((G_XMIN2 + i * (2*((G_XMAX2-G_XMIN2)/div))), C_HEIGHT2 - 52); context.lineTo((G_XMIN2 + i * (2*((G_XMAX2-G_XMIN2)/div))), C_HEIGHT2 - 48); dt.setDate(dt.getDate() + 2); date = dt.getDate(); } dt = new Date(load_date); dt.setHours(dt.getHours() - offset); dt.setDate((dt.getDate() + 1) - (div - 1)); date = dt.getDate(); for(i = 0; i < div / 2; i++) { context.fillText(date + "日", ((G_XMIN2 - 10) + ((G_XMAX2-G_XMIN2)/div) + i * (2 * ((G_XMAX2-G_XMIN2)/div))), C_HEIGHT2 - 20); context.moveTo(G_XMIN2 + ((G_XMAX2-G_XMIN2)/div) + i * (2*((G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 52); context.lineTo(G_XMIN2 + ((G_XMAX2-G_XMIN2)/div) + i * (2*((G_XMAX2-G_XMIN2)/div)), C_HEIGHT2 - 48); dt.setDate(dt.getDate() + 2); date = dt.getDate(); } context.closePath(); context.stroke(); } function drawLong_gray(context, div, offset) { var dt = new Date(load_date); dt.setHours(dt.getHours() - offset); for(var i = div - 1; i > 0; i--) { if(!(dt.getHours() > 6 && dt.getHours() <= 18)) { context.fillStyle = "#e6e6e6"; context.fillRect((G_XMIN2 + i * ((G_XMAX2-G_XMIN2)/div)), 0, ((G_XMIN2 + (i + 1) * ((G_XMAX2-G_XMIN2)/div)) - (G_XMIN2 + i * ((G_XMAX2-G_XMIN2)/div))), G_YMAX2); context.fillStyle = "#000000"; } else { context.fillStyle = "#ffffff"; context.fillRect((G_XMIN2 + i * ((G_XMAX2-G_XMIN2)/div)), 0, ((G_XMIN2 + (i + 1) * ((G_XMAX2-G_XMIN2)/div)) - (G_XMIN2 + i * ((G_XMAX2-G_XMIN2)/div))), G_YMAX2); context.fillStyle = "#000000"; } dt.setHours(dt.getHours() - 1); } context.stroke(); } function drawLong_grid(context, min, max, pt) { context.strokeStyle = "#afafaf"; for(i = 1; i < pt; i++) { context.beginPath(); context.moveTo((G_XMIN2 + i * (G_XMAX2 - G_XMIN2) / (pt - 1)), 0); context.lineTo((G_XMIN2 + i * (G_XMAX2 - G_XMIN2) / (pt - 1)), G_YMAX2); context.closePath(); context.stroke(); } var count = 0; for(var i = min; i < max; i+= 5) count++; if(count < 3) { count = 0; for(var i = min; i < max; i++) count++; for(i = 1 + min; i <= max; i++) { context.beginPath(); context.moveTo(G_XMIN2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min)))); context.lineTo(C_WIDTH2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min)))); context.closePath(); context.stroke(); } for(i = 0.1 + min; i <= 1 + max; i += 0.1) { if(i % 1 != 0) { context.beginPath(); context.setLineDash([2,2]); context.moveTo(G_XMIN2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min)))); context.lineTo(C_WIDTH2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min)))); context.closePath(); context.stroke(); } } context.setLineDash([0,0]); } else { for(i = 1 + min / 5; i < 1 + max / 5; i++) { context.beginPath(); context.moveTo(G_XMIN2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min / 5)))); context.lineTo(C_WIDTH2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min / 5)))); context.closePath(); context.stroke(); } for(i = 0.2 + min / 5; i < max / 5; i += 0.2) { if(i % 5 != 0) { context.beginPath(); context.setLineDash([2,2]); context.moveTo(G_XMIN2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min / 5)))); context.lineTo(C_WIDTH2, (G_YMAX2 - (((G_YMAX2 - G_YMIN2) / count) * (i - min / 5)))); context.closePath(); context.stroke(); } } context.setLineDash([0,0]); } }