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