001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.coor;
003
004 import static org.openstreetmap.josm.tools.I18n.tr;
005
006 /**
007 * An enumeration of coordinate formats
008 *
009 */
010 public enum CoordinateFormat {
011
012 /**
013 * the decimal format 999.999
014 */
015 DECIMAL_DEGREES (tr("Decimal Degrees")),
016
017 /**
018 * the degrees/minutes/seconds format 9 deg 99 min 99 sec
019 */
020 DEGREES_MINUTES_SECONDS (tr("deg\u00B0 min'' sec\"")),
021
022 /**
023 * the nautical format
024 */
025 NAUTICAL (tr("deg\u00B0 min'' (Nautical)")),
026
027 /**
028 * coordinates East/North
029 */
030 EAST_NORTH (tr("Projected Coordinates"));
031
032 private String displayName;
033 private CoordinateFormat(String displayName) {
034 this.displayName = displayName;
035 }
036
037 /**
038 * Replies the display name of the format
039 *
040 * @return the display name
041 */
042 public String getDisplayName() {
043 return displayName;
044 }
045
046 @Override
047 public String toString() {
048 return getDisplayName();
049 }
050
051 private static CoordinateFormat defaultCoordinateFormat = DECIMAL_DEGREES;
052
053 /**
054 * Replies the default coordinate format to be use
055 *
056 * @return the default coordinate format
057 */
058 static public CoordinateFormat getDefaultFormat() {
059 return defaultCoordinateFormat;
060 }
061
062 /**
063 * Sets the default coordinate format
064 *
065 * @param format the default coordinate format
066 */
067 static public void setCoordinateFormat(CoordinateFormat format) {
068 if (format != null) {
069 defaultCoordinateFormat = format;
070 }
071 }
072 }