private void extractData(String[] param, int a, int b, int c, int d, int e) {
		int degree, minute, fraction;
		float latitude = Float.NaN, longitude = Float.NaN;
		if (param[a].length() > 8 && param[b].length() == 1) {
			degree = Integer.parseInt(param[a].substring(0, 2));
			minute = Integer.parseInt(param[a].substring(2, 4));
			fraction = Integer.parseInt(param[a].substring(5, 9).concat("0000").substring(0, 4));
			latitude = degree + (minute / 60.0f) + (fraction / 600000.0f);
			if (param[b].charAt(0) == 'S') {
				latitude = -latitude;
			}
		}
		if (param[c].length() > 9 && param[d].length() == 1) {
			degree = Integer.parseInt(param[c].substring(0, 3));
			minute = Integer.parseInt(param[c].substring(3, 5));
			fraction = Integer.parseInt(param[c].substring(6, 10).concat("0000").substring(0, 4));
			longitude = degree + (minute / 60.0f) + (fraction / 600000.0f);
			if (param[d].charAt(0) == 'W') {
				longitude = -longitude;
			}
		}
		if (param[e].length() > 5) {
			mHour = Integer.parseInt(param[e].substring(0, 2));
			mMinute = Integer.parseInt(param[e].substring(2, 4));
			mSecond = Integer.parseInt(param[e].substring(4, 6));
		}
		if (!Float.isNaN(latitude) && !Float.isNaN(longitude)) {
			this.lat = latitude;
			this.lon = longitude;
		}
	}