Source Code Cross Referenced for EXIFGPSTagSet.java in  » 6.0-JDK-Modules » Java-Advanced-Imaging » com » sun » media » imageio » plugins » tiff » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » 6.0 JDK Modules » Java Advanced Imaging » com.sun.media.imageio.plugins.tiff 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        /*
002:         * $RCSfile: EXIFGPSTagSet.java,v $
003:         *
004:         * 
005:         * Copyright (c) 2005 Sun Microsystems, Inc. All  Rights Reserved.
006:         * 
007:         * Redistribution and use in source and binary forms, with or without
008:         * modification, are permitted provided that the following conditions
009:         * are met: 
010:         * 
011:         * - Redistribution of source code must retain the above copyright 
012:         *   notice, this  list of conditions and the following disclaimer.
013:         * 
014:         * - Redistribution in binary form must reproduce the above copyright
015:         *   notice, this list of conditions and the following disclaimer in 
016:         *   the documentation and/or other materials provided with the
017:         *   distribution.
018:         * 
019:         * Neither the name of Sun Microsystems, Inc. or the names of 
020:         * contributors may be used to endorse or promote products derived 
021:         * from this software without specific prior written permission.
022:         * 
023:         * This software is provided "AS IS," without a warranty of any 
024:         * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND 
025:         * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, 
026:         * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
027:         * EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL 
028:         * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF 
029:         * USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
030:         * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR 
031:         * ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
032:         * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
033:         * REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
034:         * INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
035:         * POSSIBILITY OF SUCH DAMAGES. 
036:         * 
037:         * You acknowledge that this software is not designed or intended for 
038:         * use in the design, construction, operation or maintenance of any 
039:         * nuclear facility. 
040:         *
041:         * $Revision: 1.1 $
042:         * $Date: 2005/10/28 16:56:45 $
043:         * $State: Exp $
044:         */
045:
046:        package com.sun.media.imageio.plugins.tiff;
047:
048:        import java.util.ArrayList;
049:        import java.util.List;
050:
051:        /**
052:         * A class representing the tags found in an EXIF GPS Info IFD.
053:         *
054:         * <p> The definitions of the data types referenced by the field
055:         * definitions may be found in the {@link TIFFTag
056:         * <code>TIFFTag</code>} class.
057:         *
058:         * @see EXIFTIFFTagSet
059:         */
060:        public class EXIFGPSTagSet extends TIFFTagSet {
061:            private static EXIFGPSTagSet theInstance = null;
062:
063:            /**
064:             * A tag indicating the GPS tag version (type BYTE, count = 4).
065:             *
066:             * @see #GPS_VERSION_2_2
067:             */
068:            public static final int TAG_GPS_VERSION_ID = 0;
069:
070:            /**
071:             * An array of bytes containing the values <code>{'2', '2', '0',
072:             * '0'}</code> to be used with the "GPSVersionID" tag to indicate
073:             * GPS version 2.2.
074:             *
075:             * @see #TAG_GPS_VERSION_ID
076:             */
077:            public static byte[] GPS_VERSION_2_2 = { '2', '2', '0', '0' };
078:
079:            /**
080:             * A tag indicating the North or South latitude (type ASCII, count = 2).
081:             *
082:             * @see #LATITUDE_REF_NORTH
083:             * @see #LATITUDE_REF_SOUTH
084:             */
085:            public static final int TAG_GPS_LATITUDE_REF = 1;
086:
087:            /**
088:             * A tag indicating the Latitude (type RATIONAL, count = 3).
089:             */
090:            public static final int TAG_GPS_LATITUDE = 2;
091:
092:            /**
093:             * A tag indicating the East or West Longitude (type ASCII, count = 2).
094:             *
095:             * @see #LONGITUDE_REF_EAST
096:             * @see #LONGITUDE_REF_WEST
097:             */
098:            public static final int TAG_GPS_LONGITUDE_REF = 3;
099:
100:            /**
101:             * A tag indicating the Longitude (type RATIONAL, count = 3).
102:             */
103:            public static final int TAG_GPS_LONGITUDE = 4;
104:
105:            /**
106:             * A tag indicating the Altitude reference (type BYTE, count = 1);
107:             *
108:             * @see #ALTITUDE_REF_SEA_LEVEL
109:             * @see #ALTITUDE_REF_SEA_LEVEL_REFERENCE
110:             */
111:            public static final int TAG_GPS_ALTITUDE_REF = 5;
112:
113:            /**
114:             * A tag indicating the Altitude (type RATIONAL, count = 1).
115:             */
116:            public static final int TAG_GPS_ALTITUDE = 6;
117:
118:            /**
119:             * A tag indicating the GPS time (atomic clock) (type RATIONAL, count = 3).
120:             */
121:            public static final int TAG_GPS_TIME_STAMP = 7;
122:
123:            /**
124:             * A tag indicating the GPS satellites used for measurement (type ASCII).
125:             */
126:            public static final int TAG_GPS_SATELLITES = 8;
127:
128:            /**
129:             * A tag indicating the GPS receiver status (type ASCII, count = 2).
130:             *
131:             * @see #STATUS_MEASUREMENT_IN_PROGRESS
132:             * @see #STATUS_MEASUREMENT_INTEROPERABILITY
133:             */
134:            public static final int TAG_GPS_STATUS = 9;
135:
136:            /**
137:             * A tag indicating the GPS measurement mode (type ASCII, count = 2).
138:             *
139:             * @see #MEASURE_MODE_2D
140:             * @see #MEASURE_MODE_3D
141:             */
142:            public static final int TAG_GPS_MEASURE_MODE = 10;
143:
144:            /**
145:             * A tag indicating the Measurement precision (type RATIONAL, count = 1).
146:             */
147:            public static final int TAG_GPS_DOP = 11;
148:
149:            /**
150:             * A tag indicating the Speed unit (type ASCII, count = 2).
151:             *
152:             * @see #SPEED_REF_KILOMETERS_PER_HOUR
153:             * @see #SPEED_REF_MILES_PER_HOUR
154:             * @see #SPEED_REF_KNOTS
155:             */
156:            public static final int TAG_GPS_SPEED_REF = 12;
157:
158:            /**
159:             * A tag indicating the Speed of GPS receiver (type RATIONAL, count = 1).
160:             */
161:            public static final int TAG_GPS_SPEED = 13;
162:
163:            /**
164:             * A tag indicating the Reference for direction of movement (type ASCII,
165:             * count = 2).
166:             *
167:             * @see #DIRECTION_REF_TRUE
168:             * @see #DIRECTION_REF_MAGNETIC
169:             */
170:            public static final int TAG_GPS_TRACK_REF = 14;
171:
172:            /**
173:             * A tag indicating the Direction of movement (type RATIONAL, count = 1).
174:             */
175:            public static final int TAG_GPS_TRACK = 15;
176:
177:            /**
178:             * A tag indicating the Reference for direction of image (type ASCII,
179:             * count = 2).
180:             *
181:             * @see #DIRECTION_REF_TRUE
182:             * @see #DIRECTION_REF_MAGNETIC
183:             */
184:            public static final int TAG_GPS_IMG_DIRECTION_REF = 16;
185:
186:            /**
187:             * A tag indicating the Direction of image (type RATIONAL, count = 1).
188:             */
189:            public static final int TAG_GPS_IMG_DIRECTION = 17;
190:
191:            /**
192:             * A tag indicating the Geodetic survey data used (type ASCII).
193:             */
194:            public static final int TAG_GPS_MAP_DATUM = 18;
195:
196:            /**
197:             * A tag indicating the Reference for latitude of destination (type
198:             * ASCII, count = 2).
199:             *
200:             * @see #LATITUDE_REF_NORTH
201:             * @see #LATITUDE_REF_SOUTH
202:             */
203:            public static final int TAG_GPS_DEST_LATITUDE_REF = 19;
204:
205:            /**
206:             * A tag indicating the Latitude of destination (type RATIONAL, count = 3).
207:             */
208:            public static final int TAG_GPS_DEST_LATITUDE = 20;
209:
210:            /**
211:             * A tag indicating the Reference for longitude of destination (type
212:             * ASCII, count = 2).
213:             *
214:             * @see #LONGITUDE_REF_EAST
215:             * @see #LONGITUDE_REF_WEST
216:             */
217:            public static final int TAG_GPS_DEST_LONGITUDE_REF = 21;
218:
219:            /**
220:             * A tag indicating the Longitude of destination (type RATIONAL,
221:             * count = 3).
222:             */
223:            public static final int TAG_GPS_DEST_LONGITUDE = 22;
224:
225:            /**
226:             * A tag indicating the Reference for bearing of destination (type ASCII,
227:             * count = 2).
228:             *
229:             * @see #DIRECTION_REF_TRUE
230:             * @see #DIRECTION_REF_MAGNETIC
231:             */
232:            public static final int TAG_GPS_DEST_BEARING_REF = 23;
233:
234:            /**
235:             * A tag indicating the Bearing of destination (type RATIONAL, count = 1).
236:             */
237:            public static final int TAG_GPS_DEST_BEARING = 24;
238:
239:            /**
240:             * A tag indicating the Reference for distance to destination (type ASCII,
241:             * count = 2).
242:             *
243:             * @see #DEST_DISTANCE_REF_KILOMETERS
244:             * @see #DEST_DISTANCE_REF_MILES
245:             * @see #DEST_DISTANCE_REF_KNOTS
246:             */
247:            public static final int TAG_GPS_DEST_DISTANCE_REF = 25;
248:
249:            /**
250:             * A tag indicating the Distance to destination (type RATIONAL, count = 1).
251:             */
252:            public static final int TAG_GPS_DEST_DISTANCE = 26;
253:
254:            /**
255:             * A tag indicating the Name of GPS processing method (type UNDEFINED).
256:             */
257:            public static final int TAG_GPS_PROCESSING_METHOD = 27;
258:
259:            /**
260:             * A tag indicating the Name of GPS area (type UNDEFINED).
261:             */
262:            public static final int TAG_GPS_AREA_INFORMATION = 28;
263:
264:            /**
265:             * A tag indicating the GPS date (type ASCII, count 11).
266:             */
267:            public static final int TAG_GPS_DATE_STAMP = 29;
268:
269:            /**
270:             * A tag indicating the GPS differential correction (type SHORT,
271:             * count = 1).
272:             *
273:             * @see #DIFFERENTIAL_CORRECTION_NONE
274:             * @see #DIFFERENTIAL_CORRECTION_APPLIED
275:             */
276:            public static final int TAG_GPS_DIFFERENTIAL = 30;
277:
278:            /**
279:             * A value to be used with the "GPSLatitudeRef" and
280:             * "GPSDestLatitudeRef" tags.
281:             *
282:             * @see #TAG_GPS_LATITUDE_REF
283:             * @see #TAG_GPS_DEST_LATITUDE_REF
284:             */
285:            public static final String LATITUDE_REF_NORTH = "N";
286:
287:            /**
288:             * A value to be used with the "GPSLatitudeRef" and
289:             * "GPSDestLatitudeRef" tags.
290:             *
291:             * @see #TAG_GPS_LATITUDE_REF
292:             * @see #TAG_GPS_DEST_LATITUDE_REF
293:             */
294:            public static final String LATITUDE_REF_SOUTH = "S";
295:
296:            /**
297:             * A value to be used with the "GPSLongitudeRef" and
298:             * "GPSDestLongitudeRef" tags.
299:             *
300:             * @see #TAG_GPS_LONGITUDE_REF
301:             * @see #TAG_GPS_DEST_LONGITUDE_REF
302:             */
303:            public static final String LONGITUDE_REF_EAST = "E";
304:
305:            /**
306:             * A value to be used with the "GPSLongitudeRef" and
307:             * "GPSDestLongitudeRef" tags.
308:             *
309:             * @see #TAG_GPS_LONGITUDE_REF
310:             * @see #TAG_GPS_DEST_LONGITUDE_REF
311:             */
312:            public static final String LONGITUDE_REF_WEST = "W";
313:
314:            /**
315:             * A value to be used with the "GPSAltitudeRef" tag.
316:             *
317:             * @see #TAG_GPS_ALTITUDE_REF
318:             */
319:            public static final int ALTITUDE_REF_SEA_LEVEL = 0;
320:
321:            /**
322:             * A value to be used with the "GPSAltitudeRef" tag.
323:             *
324:             * @see #TAG_GPS_ALTITUDE_REF
325:             */
326:            public static final int ALTITUDE_REF_SEA_LEVEL_REFERENCE = 1;
327:
328:            /**
329:             * A value to be used with the "GPSStatus" tag.
330:             *
331:             * @see #TAG_GPS_STATUS
332:             */
333:            public static final String STATUS_MEASUREMENT_IN_PROGRESS = "A";
334:
335:            /**
336:             * A value to be used with the "GPSStatus" tag.
337:             *
338:             * @see #TAG_GPS_STATUS
339:             */
340:            public static final String STATUS_MEASUREMENT_INTEROPERABILITY = "V";
341:
342:            /**
343:             * A value to be used with the "GPSMeasureMode" tag.
344:             *
345:             * @see #TAG_GPS_MEASURE_MODE
346:             */
347:            public static final String MEASURE_MODE_2D = "2";
348:
349:            /**
350:             * A value to be used with the "GPSMeasureMode" tag.
351:             *
352:             * @see #TAG_GPS_MEASURE_MODE
353:             */
354:            public static final String MEASURE_MODE_3D = "3";
355:
356:            /**
357:             * A value to be used with the "GPSSpeedRef" tag.
358:             *
359:             * @see #TAG_GPS_SPEED_REF
360:             */
361:            public static final String SPEED_REF_KILOMETERS_PER_HOUR = "K";
362:
363:            /**
364:             * A value to be used with the "GPSSpeedRef" tag.
365:             *
366:             * @see #TAG_GPS_SPEED_REF
367:             */
368:            public static final String SPEED_REF_MILES_PER_HOUR = "M";
369:
370:            /**
371:             * A value to be used with the "GPSSpeedRef" tag.
372:             *
373:             * @see #TAG_GPS_SPEED_REF
374:             */
375:            public static final String SPEED_REF_KNOTS = "N";
376:
377:            /**
378:             * A value to be used with the "GPSTrackRef", "GPSImgDirectionRef",
379:             * and "GPSDestBearingRef" tags.
380:             *
381:             * @see #TAG_GPS_TRACK_REF
382:             * @see #TAG_GPS_IMG_DIRECTION_REF
383:             * @see #TAG_GPS_DEST_BEARING_REF
384:             */
385:            public static final String DIRECTION_REF_TRUE = "T";
386:
387:            /**
388:             * A value to be used with the "GPSTrackRef", "GPSImgDirectionRef",
389:             * and "GPSDestBearingRef" tags.
390:             *
391:             * @see #TAG_GPS_TRACK_REF
392:             * @see #TAG_GPS_IMG_DIRECTION_REF
393:             * @see #TAG_GPS_DEST_BEARING_REF
394:             */
395:            public static final String DIRECTION_REF_MAGNETIC = "M";
396:
397:            /**
398:             * A value to be used with the "GPSDestDistanceRef" tag.
399:             *
400:             * @see #TAG_GPS_DEST_DISTANCE_REF
401:             */
402:            public static final String DEST_DISTANCE_REF_KILOMETERS = "K";
403:
404:            /**
405:             * A value to be used with the "GPSDestDistanceRef" tag.
406:             *
407:             * @see #TAG_GPS_DEST_DISTANCE_REF
408:             */
409:            public static final String DEST_DISTANCE_REF_MILES = "M";
410:
411:            /**
412:             * A value to be used with the "GPSDestDistanceRef" tag.
413:             *
414:             * @see #TAG_GPS_DEST_DISTANCE_REF
415:             */
416:            public static final String DEST_DISTANCE_REF_KNOTS = "N";
417:
418:            /**
419:             * A value to be used with the "GPSDifferential" tag.
420:             *
421:             * @see #TAG_GPS_DIFFERENTIAL
422:             */
423:            public static int DIFFERENTIAL_CORRECTION_NONE = 0;
424:
425:            /**
426:             * A value to be used with the "GPSDifferential" tag.
427:             *
428:             * @see #TAG_GPS_DIFFERENTIAL
429:             */
430:            public static int DIFFERENTIAL_CORRECTION_APPLIED = 1;
431:
432:            static class GPSVersionID extends TIFFTag {
433:                public GPSVersionID() {
434:                    super ("GPSVersionID", TAG_GPS_VERSION_ID,
435:                            1 << TIFFTag.TIFF_BYTE);
436:                }
437:            }
438:
439:            static class GPSLatitudeRef extends TIFFTag {
440:                public GPSLatitudeRef() {
441:                    super ("GPSLatitudeRef", TAG_GPS_LATITUDE_REF,
442:                            1 << TIFFTag.TIFF_ASCII);
443:                }
444:            }
445:
446:            static class GPSLatitude extends TIFFTag {
447:                public GPSLatitude() {
448:                    super ("GPSLatitude", TAG_GPS_LATITUDE,
449:                            1 << TIFFTag.TIFF_RATIONAL);
450:                }
451:            }
452:
453:            static class GPSLongitudeRef extends TIFFTag {
454:                public GPSLongitudeRef() {
455:                    super ("GPSLongitudeRef", TAG_GPS_LONGITUDE_REF,
456:                            1 << TIFFTag.TIFF_ASCII);
457:                }
458:            }
459:
460:            static class GPSLongitude extends TIFFTag {
461:                public GPSLongitude() {
462:                    super ("GPSLongitude", TAG_GPS_LONGITUDE,
463:                            1 << TIFFTag.TIFF_RATIONAL);
464:                }
465:            }
466:
467:            static class GPSAltitudeRef extends TIFFTag {
468:                public GPSAltitudeRef() {
469:                    super ("GPSAltitudeRef", TAG_GPS_ALTITUDE_REF,
470:                            1 << TIFFTag.TIFF_BYTE);
471:
472:                    addValueName(ALTITUDE_REF_SEA_LEVEL, "Sea level");
473:                    addValueName(ALTITUDE_REF_SEA_LEVEL_REFERENCE,
474:                            "Sea level reference (negative value)");
475:                }
476:            }
477:
478:            static class GPSAltitude extends TIFFTag {
479:                public GPSAltitude() {
480:                    super ("GPSAltitude", TAG_GPS_ALTITUDE,
481:                            1 << TIFFTag.TIFF_RATIONAL);
482:                }
483:            }
484:
485:            static class GPSTimeStamp extends TIFFTag {
486:                public GPSTimeStamp() {
487:                    super ("GPSTimeStamp", TAG_GPS_TIME_STAMP,
488:                            1 << TIFFTag.TIFF_RATIONAL);
489:                }
490:            }
491:
492:            static class GPSSatellites extends TIFFTag {
493:                public GPSSatellites() {
494:                    super ("GPSSatellites", TAG_GPS_SATELLITES,
495:                            1 << TIFFTag.TIFF_ASCII);
496:                }
497:            }
498:
499:            static class GPSStatus extends TIFFTag {
500:                public GPSStatus() {
501:                    super ("GPSStatus", TAG_GPS_STATUS, 1 << TIFFTag.TIFF_ASCII);
502:                }
503:            }
504:
505:            static class GPSMeasureMode extends TIFFTag {
506:                public GPSMeasureMode() {
507:                    super ("GPSMeasureMode", TAG_GPS_MEASURE_MODE,
508:                            1 << TIFFTag.TIFF_ASCII);
509:                }
510:            }
511:
512:            static class GPSDOP extends TIFFTag {
513:                public GPSDOP() {
514:                    super ("GPSDOP", TAG_GPS_DOP, 1 << TIFFTag.TIFF_RATIONAL);
515:                }
516:            }
517:
518:            static class GPSSpeedRef extends TIFFTag {
519:                public GPSSpeedRef() {
520:                    super ("GPSSpeedRef", TAG_GPS_SPEED_REF,
521:                            1 << TIFFTag.TIFF_ASCII);
522:                }
523:            }
524:
525:            static class GPSSpeed extends TIFFTag {
526:                public GPSSpeed() {
527:                    super ("GPSSpeed", TAG_GPS_SPEED, 1 << TIFFTag.TIFF_RATIONAL);
528:                }
529:            }
530:
531:            static class GPSTrackRef extends TIFFTag {
532:                public GPSTrackRef() {
533:                    super ("GPSTrackRef", TAG_GPS_TRACK_REF,
534:                            1 << TIFFTag.TIFF_ASCII);
535:                }
536:            }
537:
538:            static class GPSTrack extends TIFFTag {
539:                public GPSTrack() {
540:                    super ("GPSTrack", TAG_GPS_TRACK, 1 << TIFFTag.TIFF_RATIONAL);
541:                }
542:            }
543:
544:            static class GPSImgDirectionRef extends TIFFTag {
545:                public GPSImgDirectionRef() {
546:                    super ("GPSImgDirectionRef", TAG_GPS_IMG_DIRECTION_REF,
547:                            1 << TIFFTag.TIFF_ASCII);
548:                }
549:            }
550:
551:            static class GPSImgDirection extends TIFFTag {
552:                public GPSImgDirection() {
553:                    super ("GPSImgDirection", TAG_GPS_IMG_DIRECTION,
554:                            1 << TIFFTag.TIFF_RATIONAL);
555:                }
556:            }
557:
558:            static class GPSMapDatum extends TIFFTag {
559:                public GPSMapDatum() {
560:                    super ("GPSMapDatum", TAG_GPS_MAP_DATUM,
561:                            1 << TIFFTag.TIFF_ASCII);
562:                }
563:            }
564:
565:            static class GPSDestLatitudeRef extends TIFFTag {
566:                public GPSDestLatitudeRef() {
567:                    super ("GPSDestLatitudeRef", TAG_GPS_DEST_LATITUDE_REF,
568:                            1 << TIFFTag.TIFF_ASCII);
569:                }
570:            }
571:
572:            static class GPSDestLatitude extends TIFFTag {
573:                public GPSDestLatitude() {
574:                    super ("GPSDestLatitude", TAG_GPS_DEST_LATITUDE,
575:                            1 << TIFFTag.TIFF_RATIONAL);
576:                }
577:            }
578:
579:            static class GPSDestLongitudeRef extends TIFFTag {
580:                public GPSDestLongitudeRef() {
581:                    super ("GPSDestLongitudeRef", TAG_GPS_DEST_LONGITUDE_REF,
582:                            1 << TIFFTag.TIFF_ASCII);
583:                }
584:            }
585:
586:            static class GPSDestLongitude extends TIFFTag {
587:                public GPSDestLongitude() {
588:                    super ("GPSDestLongitude", TAG_GPS_DEST_LONGITUDE,
589:                            1 << TIFFTag.TIFF_RATIONAL);
590:                }
591:            }
592:
593:            static class GPSDestBearingRef extends TIFFTag {
594:                public GPSDestBearingRef() {
595:                    super ("GPSDestBearingRef", TAG_GPS_DEST_BEARING_REF,
596:                            1 << TIFFTag.TIFF_ASCII);
597:                }
598:            }
599:
600:            static class GPSDestBearing extends TIFFTag {
601:                public GPSDestBearing() {
602:                    super ("GPSDestBearing", TAG_GPS_DEST_BEARING,
603:                            1 << TIFFTag.TIFF_RATIONAL);
604:                }
605:            }
606:
607:            static class GPSDestDistanceRef extends TIFFTag {
608:                public GPSDestDistanceRef() {
609:                    super ("GPSDestDistanceRef", TAG_GPS_DEST_DISTANCE_REF,
610:                            1 << TIFFTag.TIFF_ASCII);
611:                }
612:            }
613:
614:            static class GPSDestDistance extends TIFFTag {
615:                public GPSDestDistance() {
616:                    super ("GPSDestDistance", TAG_GPS_DEST_DISTANCE,
617:                            1 << TIFFTag.TIFF_RATIONAL);
618:                }
619:            }
620:
621:            static class GPSProcessingMethod extends TIFFTag {
622:                public GPSProcessingMethod() {
623:                    super ("GPSProcessingMethod", TAG_GPS_PROCESSING_METHOD,
624:                            1 << TIFFTag.TIFF_UNDEFINED);
625:                }
626:            }
627:
628:            static class GPSAreaInformation extends TIFFTag {
629:                public GPSAreaInformation() {
630:                    super ("GPSAreaInformation", TAG_GPS_AREA_INFORMATION,
631:                            1 << TIFFTag.TIFF_UNDEFINED);
632:                }
633:            }
634:
635:            static class GPSDateStamp extends TIFFTag {
636:                public GPSDateStamp() {
637:                    super ("GPSDateStamp", TAG_GPS_DATE_STAMP,
638:                            1 << TIFFTag.TIFF_ASCII);
639:                }
640:            }
641:
642:            static class GPSDifferential extends TIFFTag {
643:                public GPSDifferential() {
644:                    super ("GPSDifferential", TAG_GPS_DIFFERENTIAL,
645:                            1 << TIFFTag.TIFF_SHORT);
646:                    addValueName(DIFFERENTIAL_CORRECTION_NONE,
647:                            "Measurement without differential correction");
648:                    addValueName(DIFFERENTIAL_CORRECTION_APPLIED,
649:                            "Differential correction applied");
650:
651:                }
652:            }
653:
654:            private static List initTags() {
655:                ArrayList tags = new ArrayList(31);
656:
657:                tags.add(new GPSVersionID());
658:                tags.add(new GPSLatitudeRef());
659:                tags.add(new GPSLatitude());
660:                tags.add(new GPSLongitudeRef());
661:                tags.add(new GPSLongitude());
662:                tags.add(new GPSAltitudeRef());
663:                tags.add(new GPSAltitude());
664:                tags.add(new GPSTimeStamp());
665:                tags.add(new GPSSatellites());
666:                tags.add(new GPSStatus());
667:                tags.add(new GPSMeasureMode());
668:                tags.add(new GPSDOP());
669:                tags.add(new GPSSpeedRef());
670:                tags.add(new GPSSpeed());
671:                tags.add(new GPSTrackRef());
672:                tags.add(new GPSTrack());
673:                tags.add(new GPSImgDirectionRef());
674:                tags.add(new GPSImgDirection());
675:                tags.add(new GPSMapDatum());
676:                tags.add(new GPSDestLatitudeRef());
677:                tags.add(new GPSDestLatitude());
678:                tags.add(new GPSDestLongitudeRef());
679:                tags.add(new GPSDestLongitude());
680:                tags.add(new GPSDestBearingRef());
681:                tags.add(new GPSDestBearing());
682:                tags.add(new GPSDestDistanceRef());
683:                tags.add(new GPSDestDistance());
684:                tags.add(new GPSProcessingMethod());
685:                tags.add(new GPSAreaInformation());
686:                tags.add(new GPSDateStamp());
687:                tags.add(new GPSDifferential());
688:                return tags;
689:            }
690:
691:            private EXIFGPSTagSet() {
692:                super (initTags());
693:            }
694:
695:            /**
696:             * Returns a shared instance of an <code>EXIFGPSTagSet</code>.
697:             *
698:             * @return an <code>EXIFGPSTagSet</code> instance.
699:             */
700:            public synchronized static EXIFGPSTagSet getInstance() {
701:                if (theInstance == null) {
702:                    theInstance = new EXIFGPSTagSet();
703:                }
704:                return theInstance;
705:            }
706:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.