Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryAbstractImage.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryAbstractImage.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryAbstractImage.java	(revision 32033)
@@ -51,13 +51,9 @@
    * Creates a new object in the given position and with the given direction.
    *
-   * @param lat
-   *          The latitude where the picture was taken.
-   * @param lon
-   *          The longitude where the picture was taken.
-   * @param ca
-   *          The direction of the picture (0 means north).
-   */
-  protected MapillaryAbstractImage(final double lat, final double lon, final double ca) {
-    this.latLon = new LatLon(lat, lon);
+   * @param latLon  The latitude and longitude where the picture was taken.
+   * @param ca  The direction of the picture (0 means north).
+   */
+  protected MapillaryAbstractImage(final LatLon latLon, final double ca) {
+    this.latLon = latLon;
     this.tempLatLon = this.latLon;
     this.movingLatLon = this.latLon;
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java	(revision 32033)
@@ -4,4 +4,6 @@
 import java.util.ArrayList;
 import java.util.List;
+
+import org.openstreetmap.josm.data.coor.LatLon;
 
 /**
@@ -25,15 +27,10 @@
    * Main constructor of the class MapillaryImage
    *
-   * @param key
-   *          The unique identifier of the image.
-   * @param lat
-   *          The latitude where it is positioned.
-   * @param lon
-   *          The longitude where it is positioned.
-   * @param ca
-   *          The direction of the images in degrees, meaning 0 north.
+   * @param key  The unique identifier of the image.
+   * @param latLon  The latitude and longitude where it is positioned.
+   * @param ca  The direction of the images in degrees, meaning 0 north.
    */
-  public MapillaryImage(String key, double lat, double lon, double ca) {
-    super(lat, lon, ca);
+  public MapillaryImage(final String key, final LatLon latLon, final double ca) {
+    super(latLon, ca);
     this.key = key;
   }
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImportedImage.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImportedImage.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImportedImage.java	(revision 32033)
@@ -9,4 +9,5 @@
 import javax.imageio.ImageIO;
 
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.plugins.mapillary.utils.MapillaryUtils;
 
@@ -27,15 +28,10 @@
    * Using when the EXIF tags doesn't contain that info.
    *
-   * @param lat
-   *          Latitude where the picture was taken.
-   * @param lon
-   *          Longitude where the picture was taken.
-   * @param ca
-   *          Direction of the picture (0 means north).
-   * @param file
-   *          The file containing the picture.
+   * @param latLon  The latitude and longitude where the picture was taken.
+   * @param ca  Direction of the picture (0 means north).
+   * @param file  The file containing the picture.
    */
-  public MapillaryImportedImage(double lat, double lon, double ca, File file) {
-    this(lat, lon, ca, file, MapillaryUtils.currentDate());
+  public MapillaryImportedImage(final LatLon latLon, final double ca, final File file) {
+    this(latLon, ca, file, MapillaryUtils.currentDate());
   }
 
@@ -43,18 +39,11 @@
    * Main constructor of the class.
    *
-   * @param lat
-   *          Latitude where the picture was taken.
-   * @param lon
-   *          Longitude where the picture was taken.
-   * @param ca
-   *          Direction of the picture (0 means north),
-   * @param file
-   *          The file containing the picture.
-   * @param datetimeOriginal
-   *          The date the picture was taken.
+   * @param latLon  Latitude and Longitude where the picture was taken.
+   * @param ca  Direction of the picture (0 means north),
+   * @param file  The file containing the picture.
+   * @param datetimeOriginal  The date the picture was taken.
    */
-  public MapillaryImportedImage(double lat, double lon, double ca, File file,
-      String datetimeOriginal) {
-    super(lat, lon, ca);
+  public MapillaryImportedImage(final LatLon latLon, final double ca, final File file, final String datetimeOriginal) {
+    super(latLon, ca);
     this.file = file;
     try {
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThread.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThread.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThread.java	(revision 32033)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImage;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryData;
@@ -71,8 +72,11 @@
         for (int j = 0; j < cas.size(); j++) {
           try {
-            images.add(new MapillaryImage(keys.getString(j), coords
-                    .getJsonArray(j).getJsonNumber(1).doubleValue(), coords
-                    .getJsonArray(j).getJsonNumber(0).doubleValue(), cas
-                    .getJsonNumber(j).doubleValue()));
+            images.add(new MapillaryImage(
+                keys.getString(j),
+                new LatLon(
+                    coords.getJsonArray(j).getJsonNumber(1).doubleValue(),
+                    coords.getJsonArray(j).getJsonNumber(0).doubleValue()
+                ),
+                cas.getJsonNumber(j).doubleValue()));
           } catch (IndexOutOfBoundsException e) {
             Main.warn("Mapillary bug at " + MapillaryURL.searchSequenceURL(bounds, page));
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/utils/MapillaryUtils.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/utils/MapillaryUtils.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/utils/MapillaryUtils.java	(revision 32033)
@@ -280,7 +280,7 @@
         caValue = ((RationalNumber) ca.getValue()).doubleValue();
       if (datetimeOriginal != null) {
-        return new MapillaryImportedImage(latValue, lonValue, caValue, file, datetimeOriginal.getStringValue());
-      }
-      return new MapillaryImportedImage(latValue, lonValue, caValue, file);
+        return new MapillaryImportedImage(new LatLon(latValue, lonValue), caValue, file, datetimeOriginal.getStringValue());
+      }
+      return new MapillaryImportedImage(new LatLon(latValue, lonValue), caValue, file);
     }
     throw new IllegalStateException("Invalid format.");
@@ -323,13 +323,13 @@
                       ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL);
       if (datetimeOriginal == null) {
-        return new MapillaryImportedImage(pos.lat(), pos.lon(), 0, file);
+        return new MapillaryImportedImage(pos, 0, file);
       }
       try {
-        return new MapillaryImportedImage(pos.lat(), pos.lon(), 0, file, datetimeOriginal.getStringValue());
+        return new MapillaryImportedImage(pos, 0, file, datetimeOriginal.getStringValue());
       } catch (ImageReadException e) {
         Main.error(e);
       }
     }
-    return new MapillaryImportedImage(pos.lat(), pos.lon(), 0, file);
+    return new MapillaryImportedImage(pos, 0, file);
   }
 
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/ImportTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/ImportTest.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/ImportTest.java	(revision 32033)
@@ -40,9 +40,9 @@
   @Test(expected = IIOException.class)
   public void testInvalidFiles() throws IOException {
-    MapillaryImportedImage img = new MapillaryImportedImage(0, 0, 0, null);
+    MapillaryImportedImage img = new MapillaryImportedImage(new LatLon(0, 0), 0, null);
     assertEquals(null, img.getImage());
     assertEquals(null, img.getFile());
 
-    img = new MapillaryImportedImage(0, 0, 0, new File(""));
+    img = new MapillaryImportedImage(new LatLon(0, 0), 0, new File(""));
     assertEquals(new File(""), img.getFile());
     img.getImage();
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryAbstractImageTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryAbstractImageTest.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryAbstractImageTest.java	(revision 32033)
@@ -10,4 +10,5 @@
 import org.junit.Test;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
 
 /**
@@ -23,5 +24,5 @@
     TimeZone.setDefault(TimeZone.getTimeZone("GMT+0745"));
 
-    MapillaryAbstractImage mai = new MapillaryImportedImage(0, 0, 0, null);
+    MapillaryAbstractImage mai = new MapillaryImportedImage(new LatLon(0, 0), 0, null);
     mai.setCapturedAt(1044087606000l); // in timezone GMT+0745 this is Saturday, February 1, 2003 16:05:06
 
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryDataTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryDataTest.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryDataTest.java	(revision 32033)
@@ -9,4 +9,5 @@
 import org.junit.Before;
 import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
 
 /**
@@ -31,8 +32,8 @@
   @Before
   public void setUp() {
-    this.img1 = new MapillaryImage("key1", 0.1, 0.1, 90);
-    this.img2 = new MapillaryImage("key2", 0.2, 0.2, 90);
-    this.img3 = new MapillaryImage("key3", 0.3, 0.3, 90);
-    this.img4 = new MapillaryImage("key4", 0.4, 0.4, 90);
+    this.img1 = new MapillaryImage("key1", new LatLon(0.1, 0.1), 90);
+    this.img2 = new MapillaryImage("key2", new LatLon(0.2, 0.2), 90);
+    this.img3 = new MapillaryImage("key3", new LatLon(0.3, 0.3), 90);
+    this.img4 = new MapillaryImage("key4", new LatLon(0.4, 0.4), 90);
     this.seq = new MapillarySequence();
 
@@ -74,5 +75,5 @@
   public void sizeTest() {
     assertEquals(4, this.data.size());
-    this.data.add(new MapillaryImage("key5", 0.1, 0.1, 90));
+    this.data.add(new MapillaryImage("key5", new LatLon(0.1, 0.1), 90));
     assertEquals(5, this.data.size());
   }
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillarySequenceTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillarySequenceTest.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillarySequenceTest.java	(revision 32033)
@@ -8,4 +8,5 @@
 import org.junit.Before;
 import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
 
 /**
@@ -29,8 +30,8 @@
   @Before
   public void setUp() {
-    this.img1 = new MapillaryImage("key1", 0.1, 0.1, 90);
-    this.img2 = new MapillaryImage("key2", 0.2, 0.2, 90);
-    this.img3 = new MapillaryImage("key3", 0.3, 0.3, 90);
-    this.img4 = new MapillaryImage("key4", 0.4, 0.4, 90);
+    this.img1 = new MapillaryImage("key1", new LatLon(0.1, 0.1), 90);
+    this.img2 = new MapillaryImage("key2", new LatLon(0.2, 0.2), 90);
+    this.img3 = new MapillaryImage("key3", new LatLon(0.3, 0.3), 90);
+    this.img4 = new MapillaryImage("key4", new LatLon(0.4, 0.4), 90);
     this.seq = new MapillarySequence();
 
@@ -63,5 +64,5 @@
     // that is not in the sequence.
     try {
-      this.seq.next(new MapillaryImage("key5", 0.5, 0.5, 90));
+      this.seq.next(new MapillaryImage("key5", new LatLon(0.5, 0.5), 90));
       fail();
     } catch (IllegalArgumentException e) {
@@ -72,5 +73,5 @@
     // image that is not in the sequence.
     try {
-      this.seq.previous(new MapillaryImage("key5", 0.5, 0.5, 90));
+      this.seq.previous(new MapillaryImage("key5", new LatLon(0.5, 0.5), 90));
       fail();
     } catch (IllegalArgumentException e) {
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/history/MapillaryRecordTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/history/MapillaryRecordTest.java	(revision 32030)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/history/MapillaryRecordTest.java	(revision 32033)
@@ -11,4 +11,5 @@
 import org.junit.Before;
 import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.plugins.mapillary.AbstractTest;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImage;
@@ -43,7 +44,7 @@
   public void setUp() {
     this.record = new MapillaryRecord();
-    this.img1 = new MapillaryImage("key1", 0.1, 0.1, 0.1);
-    this.img2 = new MapillaryImage("key2", 0.2, 0.2, 0.2);
-    this.img3 = new MapillaryImage("key3", 0.3, 0.3, 0.3);
+    this.img1 = new MapillaryImage("key1", new LatLon(0.1, 0.1), 0.1);
+    this.img2 = new MapillaryImage("key2", new LatLon(0.2, 0.2), 0.2);
+    this.img3 = new MapillaryImage("key3", new LatLon(0.3, 0.3), 0.3);
     MapillaryLayer.getInstance().getData().getImages().clear();
   }
