/*
* @(#)BaselineTIFFTagSet.java 1.0 2010-07-24
*
* Copyright (c) 2010 Werner Randelshofer, Goldau, Switzerland.
* All rights reserved.
*
* You may not use, copy or modify this file, except in compliance with the
* license agreement you entered into with Werner Randelshofer.
* For details see accompanying license terms.
*/
package org.monte.media.exif;
import org.monte.media.tiff.TagSet;
import org.monte.media.tiff.SetValueFormatter;
import org.monte.media.tiff.*;
import static org.monte.media.tiff.TIFFTag.*;
/**
* Enumeration of GPS EXIF tags.
* <p>
* Source:
* <p>
* Exchangeable image file format for digital still cameras: EXIF Version 2.2.
* (April, 2002). Standard of Japan Electronics and Information Technology
* Industries Association. JEITA CP-3451.
* <a href="http://www.exif.org/Exif2-2.PDF">http://www.exif.org/Exif2-2.PDF</a>
*
* @author Werner Randelshofer
* @version 1.0 2010-07-24 Created.
*/
public class GPSTagSet extends TagSet {
private static GPSTagSet instance;
private GPSTagSet(TIFFTag[] tags) {
super("GPS", tags);
}
/** Returns a shared instance of a BaselineTIFFTagSet. */
public static GPSTagSet getInstance() {
if (instance == null) {
TIFFTag[] tags = {//
// Tags Relating to GPS
new TIFFTag("GPSVersionID", 0x0, BYTE_MASK),
new TIFFTag("GPSLatitudeRef", 0x1, ASCII_MASK),
new TIFFTag("GPSLatitude", 0x2, RATIONAL_MASK),
new TIFFTag("GPSLongitudeRef", 0x3, ASCII_MASK),
new TIFFTag("GPSLongitude", 0x4, RATIONAL_MASK),
new TIFFTag("GPSAltitudeRef", 0x5, BYTE_MASK, new SetValueFormatter(//
"aboveSeaLevel",0,//
"belowSeaLevel",1//
)),
new TIFFTag("GPSAltitude", 0x6, RATIONAL_MASK),
new TIFFTag("GPSTimeStamp", 0x7, RATIONAL_MASK),
new TIFFTag("GPSSatellites", 0x8, ASCII_MASK),
new TIFFTag("GPSStatus", 0x9, ASCII_MASK),
new TIFFTag("GPSMeasureMode", 0xa, ASCII_MASK),
new TIFFTag("GPSDOP", 0xb, RATIONAL_MASK),
new TIFFTag("GPSSpeedRef", 0xc, ASCII_MASK),
new TIFFTag("GPSTrackRef", 0xe, ASCII_MASK),
new TIFFTag("GPSTrack", 0xf, RATIONAL_MASK),
new TIFFTag("GPSImgDirectionRef", 0x10, ASCII_MASK),
new TIFFTag("GPSImgDirection", 0x011, RATIONAL_MASK),
new TIFFTag("GPSMapDatum", 0x12, ASCII_MASK),
new TIFFTag("GPSDestLatitudeRef", 0x13, ASCII_MASK),
new TIFFTag("GPSDestLatitude", 0x14, RATIONAL_MASK),
new TIFFTag("GPSDestLongitudeRef", 0x15, ASCII_MASK),
new TIFFTag("GPSDestLongitude", 0x16, RATIONAL_MASK),
new TIFFTag("GPSDestBearingRef", 0x17, ASCII_MASK),
new TIFFTag("GPSDestBearing", 0x18, RATIONAL_MASK),
new TIFFTag("GPSDestDistanceRef", 0x19, ASCII_MASK),
new TIFFTag("GPSDestDistance", 0x1a, RATIONAL_MASK),
new TIFFTag("GPSProcessingMethod", 0x1b, UNDEFINED_MASK),
new TIFFTag("GPSAreaInformation", 0x1c, UNDEFINED_MASK),
new TIFFTag("GPSDateStamp", 0x1d, ASCII_MASK),
new TIFFTag("GPSDifferential", 0x1e, SHORT_MASK), //
};
instance = new GPSTagSet(tags);
}
return instance;
}
}