- Rational[] dates = gpsdir.getRationalArray(TAG_GPS_DATESTAMP);
- data.setGpsDatestamp(new int[] {dates[0].intValue(), dates[1].intValue(), dates[2].intValue()});
+ Rational[] dates = gpsdir.getRationalArray(TAG_DATESTAMP);
+ if (dates != null) {
+ data.setGpsDatestamp(new int[] {dates[0].intValue(), dates[1].intValue(), dates[2].intValue()});
+ }
+ }
+
+ // Image bearing (if present)
+ if (gpsdir.containsTag(GpsDirectory.TAG_IMG_DIRECTION) && gpsdir.containsTag(GpsDirectory.TAG_IMG_DIRECTION_REF))
+ {
+ Rational bearing = gpsdir.getRational(GpsDirectory.TAG_IMG_DIRECTION);
+ if (bearing != null) {
+ data.setBearing(bearing.doubleValue());
+ }