package readers; import java.text.ParseException; import processing.core.PApplet; @SuppressWarnings("serial") public class LocationsReader extends PApplet { private String[] lines; public String[] locations; public float[][] coordinates; public int nrow; public LocationsReader(String filename) throws ParseException { lines = loadStrings(filename); nrow = lines.length; locations = new String[nrow]; coordinates = new float[nrow][]; for (int i = 0; i < nrow; i++) { String[] line = lines[i].split("\t"); locations[i] = line[0]; coordinates[i] = parseFloat(subset(line, 1)); } coordinates = (float[][]) coordinates; }// END: ReadLocation public String[] getLocations() { return locations; }// END: getLocations public float getLongMin() { /* this should maybe specify which column is lat/long */ float m = Float.MAX_VALUE; for (int row = 0; row < nrow; row++) { if (coordinates[row][0] < m) { m = coordinates[row][0]; } } return m; }// END: getLongMin public float getLongMax() { /* this should maybe specify which column is lat/long */ float m = -Float.MAX_VALUE; for (int row = 0; row < nrow; row++) { if (coordinates[row][0] > m) { m = coordinates[row][0]; } } return m; }// END: getLongMax public float getLatMin() { /* this should maybe specify which column is lat/long */ float m = Float.MAX_VALUE; for (int row = 0; row < nrow; row++) { if (coordinates[row][1] < m) { m = coordinates[row][1]; } } return m; }// END: getLatMin public float getLatMax() { /* this should maybe specify which column is lat/long */ float m = -Float.MAX_VALUE; for (int row = 0; row < nrow; row++) { if (coordinates[row][1] > m) { m = coordinates[row][1]; } } return m; }// END: getLatMax int getNrow() { return nrow; }// END: getNrow public float getFloat(int row, int col) { return coordinates[row][col]; }// END: getFloat public double[] getCoordsColumn(int columnIndex) { double[] x = new double[nrow]; for (int row = 0; row < nrow; row++) { x[row] = coordinates[row][columnIndex]; } return x; }// END: getCoordsColumn }// END: class