//License: GPLv2 or later //Copyright 2007 by Raphael Mack and others package org.openstreetmap.josm.data.gpx; import java.awt.Color; import java.util.Date; import org.openstreetmap.josm.data.coor.CachedLatLon; import org.openstreetmap.josm.data.coor.EastNorth; import org.openstreetmap.josm.data.coor.LatLon; import org.openstreetmap.josm.tools.PrimaryDateParser; public class WayPoint extends WithAttributes implements Comparable<WayPoint> { public double time; public Color customColoring; public boolean drawLine; public int dir; private static ThreadLocal<PrimaryDateParser> dateParser = new ThreadLocal<PrimaryDateParser>() { @Override protected PrimaryDateParser initialValue() { return new PrimaryDateParser(); } }; private final CachedLatLon coor; public final LatLon getCoor() { return coor; } public final EastNorth getEastNorth() { return coor.getEastNorth(); } public WayPoint(LatLon ll) { coor = new CachedLatLon(ll); } @Override public String toString() { return "WayPoint (" + (attr.containsKey("name") ? attr.get("name") + ", " :"") + coor.toString() + ", " + attr + ")"; } /** * Convert the time stamp of the waypoint into seconds from the epoch */ public void setTime() { if(attr.containsKey("time")) { try { time = dateParser.get().parse(attr.get("time").toString()).getTime() / 1000.; /* ms => seconds */ } catch(Exception e) { time = 0; } } } public int compareTo(WayPoint w) { return Double.compare(time, w.time); } public Date getTime() { return new Date((long) (time * 1000)); } }