/* * Angela Chen * Fall 2004-Winter 2005 * * A Java applet that reads tracklog files and visually plots the path. * */ import java.io.*; import java.awt.*; import java.applet.*; import java.net.*; import java.util.*; /** * */ public class Plotter extends Applet { private int numOfLines = 0; private int easting[]; private int northing[]; private String tempEasting[]; private String tempNorthing[]; // other data in tracklog file private String[] type, name, zoneNum, zoneChar, month, day, year, hour, minutes, seconds, altitude, depth; private final int START_EASTING1 = 479333; // start point at old apt #191 private final int START_NORTHING1 = 3636459; // start point at old apt #191 private final int START_EASTING2 = 479470; // start point at new apt #89 private final int START_NORTHING2 = 3636435; // start point at new apt #89 private final int ARRAY_SIZE_OFFSET = 3; // private final int SET_ARRAY_OFFSET = 4; // private final int X_SCALE = 12; // Scales the image horizontally 12, 20 private final int Y_SCALE = 15; // Scales the image vertically 15, 25 private final int APPLET_WIDTH = 949; // 950 in html private final int APPLET_HEIGHT = 574; // 575 in html private String fileName = "tracklogs/Nov_16thr26_04.csv"; // "tracklogs/Nov_16thr26_04.csv" private String dataStringArr[]; // each line in the file private int eastingMin; private int eastingMax; private int northingMin; private int northingMax; private int xCoord; private int yCoord; private int xDif; private int yDif; private int tempX; private int tempY; /** * */ public void init() { setNumOfLines(fileName); // initialize arrays dataStringArr = new String[numOfLines]; // size has offset of 5, data starts on line 4 + 1 for array offset easting = new int[numOfLines-ARRAY_SIZE_OFFSET]; northing = new int[numOfLines-ARRAY_SIZE_OFFSET]; tempEasting = new String[numOfLines-ARRAY_SIZE_OFFSET]; tempNorthing = new String[numOfLines-ARRAY_SIZE_OFFSET]; type = new String[numOfLines-ARRAY_SIZE_OFFSET]; name = new String[numOfLines-ARRAY_SIZE_OFFSET]; zoneNum = new String[numOfLines-ARRAY_SIZE_OFFSET]; zoneChar = new String[numOfLines-ARRAY_SIZE_OFFSET]; month = new String[numOfLines-ARRAY_SIZE_OFFSET]; day = new String[numOfLines-ARRAY_SIZE_OFFSET]; year = new String[numOfLines-ARRAY_SIZE_OFFSET]; hour = new String[numOfLines-ARRAY_SIZE_OFFSET]; minutes = new String[numOfLines-ARRAY_SIZE_OFFSET]; seconds = new String[numOfLines-ARRAY_SIZE_OFFSET]; altitude = new String[numOfLines-ARRAY_SIZE_OFFSET]; depth = new String[numOfLines-ARRAY_SIZE_OFFSET]; initArray(type); initArray(name); initArray(zoneNum); initArray(zoneChar); initArray(tempEasting); initArray(tempNorthing); initArray(month); initArray(day); initArray(year); initArray(hour); initArray(minutes); initArray(seconds); initArray(altitude); initArray(depth); readData(fileName); setArrays(); setEasting(); setNorthing(); findEastingRange(); findNorthingRange(); } /** * */ public void paint( Graphics g ) { super.paint(g); setBackground( Color.WHITE ); String date = fileName; g.drawString(date, 650, 25 ); String eastingRange = "Easting range= ( " + eastingMin + " , " + eastingMax + " )"; g.drawString(eastingRange, 650, 50 ); String northingRange = "Northing range= ( " + northingMin + " , " + northingMax + " )"; g.drawString(northingRange, 650, 75 ); g.setColor(Color.BLACK); //g.fillRect( 234, 495, 10, 10); // for trips to LA g.setColor(Color.LIGHT_GRAY); g.drawRect(0, 0, APPLET_WIDTH, APPLET_HEIGHT ); g.setColor(Color.RED); // home xCoord = 187; //239; yCoord = 175; //500; tempX = xCoord; tempY = yCoord; for(int i=0; i eastingMax ) { eastingMax = easting[i]; } } } // end findEastingRange /** * findNorthingRange() - finds the minimum and maximum northing values. */ private void findNorthingRange() { northingMin = northing[0]; northingMax = northing[0]; for( int i=0; i northingMax) { northingMax = northing[i]; } } } // end findNorthingRange() } // end class Plotter