001package org.openstreetmap.gui.jmapviewer;
002
003//License: GPL. Copyright 2009 by Stefan Zeller
004
005import java.awt.geom.Point2D;
006import java.io.IOException;
007import java.io.ObjectInputStream;
008import java.io.ObjectOutputStream;
009import java.io.Serializable;
010
011import org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate;
012
013/**
014 * This class encapsulates a Point2D.Double and provide access
015 * via <tt>lat</tt> and <tt>lon</tt>.
016 *
017 * @author Jan Peter Stotz
018 *
019 */
020public class Coordinate implements Serializable, ICoordinate {
021    private transient Point2D.Double data;
022
023    public Coordinate(double lat, double lon) {
024        data = new Point2D.Double(lon, lat);
025    }
026
027    public double getLat() {
028        return data.y;
029    }
030
031    public void setLat(double lat) {
032        data.y = lat;
033    }
034
035    public double getLon() {
036        return data.x;
037    }
038
039    public void setLon(double lon) {
040        data.x = lon;
041    }
042
043    private void writeObject(ObjectOutputStream out) throws IOException {
044        out.writeObject(data.x);
045        out.writeObject(data.y);
046    }
047
048    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
049        data = new Point2D.Double();
050        data.x = (Double) in.readObject();
051        data.y = (Double) in.readObject();
052    }
053
054    public String toString() {
055        return "Coordinate[" + data.y + ", " + data.x + "]";
056    }
057}