[jmapviewer] 05/13: Imported Upstream version 1.11+dfsg

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Fri Oct 9 09:40:53 UTC 2015


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository jmapviewer.

commit 37824042229b2c8adc494283042d069ed9d63c58
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Oct 9 10:37:59 2015 +0200

    Imported Upstream version 1.11+dfsg
---
 build.xml                                          |   2 +-
 .../openstreetmap/gui/jmapviewer/JMapViewer.java   |  36 ++--
 .../gui/jmapviewer/JobDispatcher.java              | 183 ---------------------
 .../gui/jmapviewer/OsmTileLoader.java              |  10 +-
 src/org/openstreetmap/gui/jmapviewer/Tile.java     |  11 +-
 .../gui/jmapviewer/TileController.java             |   9 +-
 .../gui/jmapviewer/events/JMVCommandEvent.java     |   2 +-
 .../gui/jmapviewer/interfaces/TileLoader.java      |   6 +
 .../gui/jmapviewer/interfaces/TileSource.java      | 114 -------------
 .../tilesources/AbstractMapQuestTileSource.java    |   9 +-
 .../tilesources/AbstractTMSTileSource.java         |  40 -----
 .../tilesources/BingAerialTileSource.java          |  13 +-
 .../gui/jmapviewer/tilesources/OsmTileSource.java  |  10 --
 .../jmapviewer/tilesources/ScanexTileSource.java   |  23 ---
 .../gui/jmapviewer/tilesources/TMSTileSource.java  |   5 -
 15 files changed, 50 insertions(+), 423 deletions(-)

diff --git a/build.xml b/build.xml
index 573115e..49c98c4 100644
--- a/build.xml
+++ b/build.xml
@@ -77,7 +77,7 @@
 
     <target name="checkstyle">
         <taskdef resource="com/puppycrawl/tools/checkstyle/ant/checkstyle-ant-task.properties" 
-        	classpath="tools/checkstyle/checkstyle-6.9-all.jar"/>
+        	classpath="tools/checkstyle/checkstyle-6.11-all.jar"/>
         <checkstyle config="tools/checkstyle/jmapviewer_checks.xml">
             <fileset dir="${basedir}/src" includes="**/*.java" />
             <formatter type="xml" toFile="checkstyle-jmapviewer.xml"/>
diff --git a/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java b/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java
index b3d1fc5..8602f33 100644
--- a/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java
+++ b/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java
@@ -81,7 +81,7 @@ public class JMapViewer extends JPanel implements TileLoaderListener {
     protected JButton zoomInButton;
     protected JButton zoomOutButton;
 
-    public static enum ZOOM_BUTTON_STYLE {
+    public enum ZOOM_BUTTON_STYLE {
         HORIZONTAL,
         VERTICAL
     }
@@ -102,17 +102,26 @@ public class JMapViewer extends JPanel implements TileLoaderListener {
      * retrieving the tiles.
      */
     public JMapViewer() {
-        this(new MemoryTileCache(), 8);
+        this(new MemoryTileCache());
         new DefaultMapController(this);
     }
 
     /**
      * Creates a new {@link JMapViewer} instance.
      * @param tileCache The cache where to store tiles
-     * @param downloadThreadCount The number of parallel threads for retrieving the tiles
+     * @deprecated @param downloadThreadCount not used anymore
      */
+    @Deprecated
     public JMapViewer(TileCache tileCache, int downloadThreadCount) {
-        JobDispatcher.setMaxWorkers(downloadThreadCount);
+        this(tileCache);
+    }
+
+    /**
+     * Creates a new {@link JMapViewer} instance.
+     * @param tileCache The cache where to store tiles
+     *
+     */
+    public JMapViewer(TileCache tileCache) {
         tileSource = new OsmTileSource.Mapnik();
         tileController = new TileController(tileSource, tileCache, this);
         mapMarkerList = Collections.synchronizedList(new LinkedList<MapMarker>());
@@ -456,25 +465,6 @@ public class JMapViewer extends JPanel implements TileLoaderListener {
     /**
      * Calculates the position on the map of a given coordinate
      *
-     * @param lat Latitude
-     * @param offset Offset respect Latitude
-     * @param checkOutside check if the point is outside the displayed area
-     * @return Integer the radius in pixels
-     * @deprecated use {@link #getLatOffset(double, double, double, boolean)}
-     */
-    @Deprecated
-    public Integer getLatOffset(double lat, double offset, boolean checkOutside) {
-        int y = tileSource.latToY(lat + offset, zoom);
-        y -= center.y - getHeight() / 2;
-        if (checkOutside && (y < 0 || y > getHeight())) {
-            return null;
-        }
-        return y;
-    }
-
-    /**
-     * Calculates the position on the map of a given coordinate
-     *
      * @param marker MapMarker object that define the x,y coordinate
      * @param p coordinate
      * @return Integer the radius in pixels
diff --git a/src/org/openstreetmap/gui/jmapviewer/JobDispatcher.java b/src/org/openstreetmap/gui/jmapviewer/JobDispatcher.java
deleted file mode 100644
index e689151..0000000
--- a/src/org/openstreetmap/gui/jmapviewer/JobDispatcher.java
+++ /dev/null
@@ -1,183 +0,0 @@
-// License: GPL. For details, see Readme.txt file.
-package org.openstreetmap.gui.jmapviewer;
-
-import java.util.concurrent.BlockingDeque;
-import java.util.concurrent.LinkedBlockingDeque;
-import java.util.concurrent.TimeUnit;
-
-import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
-
-/**
- * A generic class that processes a list of {@link Runnable} one-by-one using
- * one or more {@link Thread}-instances. The number of instances varies between
- * 1 and {@link #workerThreadMaxCount} (default: 8). If an instance is idle
- * more than {@link #workerThreadTimeout} seconds (default: 30), the instance
- * ends itself.
- *
- * @author Jan Peter Stotz
- */
-public final class JobDispatcher {
-
-    private static final JobDispatcher instance = new JobDispatcher();
-
-    private static int workerThreadMaxCount = 8;
-
-    /**
-     * Specifies the time span in seconds that a worker thread waits for new
-     * jobs to perform. If the time span has elapsed the worker thread
-     * terminates itself. Only the first worker thread works differently, it
-     * ignores the timeout and will never terminate itself.
-     */
-    private static int workerThreadTimeout = 30;
-
-    /**
-     * Type of queue, FIFO if <code>false</code>, LIFO if <code>true</code>
-     */
-    private boolean modeLIFO = false;
-
-    /**
-     * Total number of worker threads currently idle or active
-     */
-    private int workerThreadCount = 0;
-
-    /**
-     * Number of worker threads currently idle
-     */
-    private int workerThreadIdleCount = 0;
-
-    /**
-     * Just an id for identifying an worker thread instance
-     */
-    private int workerThreadId = 0;
-
-    private final BlockingDeque<TileJob> jobQueue = new LinkedBlockingDeque<>();
-
-    private JobDispatcher() {
-        addWorkerThread().firstThread = true;
-    }
-
-    /**
-     * @return the singelton instance of the {@link JobDispatcher}
-     */
-    public static JobDispatcher getInstance() {
-        return instance;
-    }
-
-    /**
-     * Removes all jobs from the queue that are currently not being processed.
-     */
-    public void cancelOutstandingJobs() {
-        jobQueue.clear();
-    }
-
-    /**
-     * Function to set the maximum number of workers for tile loading.
-     * @param workers maximum number of workers
-     */
-    public static void setMaxWorkers(int workers) {
-        workerThreadMaxCount = workers;
-    }
-
-    /**
-     * Function to set the LIFO/FIFO mode for tile loading job.
-     *
-     * @param lifo <code>true</code> for LIFO mode, <code>false</code> for FIFO mode
-     */
-    public void setLIFO(boolean lifo) {
-        modeLIFO = lifo;
-    }
-
-    /**
-     * Adds a job to the queue.
-     * Jobs for tiles already contained in the are ignored (using a <code>null</code> tile
-     * prevents skipping).
-     *
-     * @param job the the job to be added
-     */
-    public void addJob(TileJob job) {
-        try {
-            if (job.getTile() != null) {
-                for (TileJob oldJob : jobQueue) {
-                    if (job.getTile().equals(oldJob.getTile())) {
-                        return;
-                    }
-                }
-            }
-            jobQueue.put(job);
-            synchronized (this) {
-                if (workerThreadIdleCount == 0 && workerThreadCount < workerThreadMaxCount)
-                    addWorkerThread();
-            }
-        } catch (InterruptedException e) {
-            System.err.println("InterruptedException: " + e.getMessage());
-        }
-    }
-
-    private JobThread addWorkerThread() {
-        JobThread jobThread = new JobThread(++workerThreadId);
-        synchronized (this) {
-            workerThreadCount++;
-        }
-        jobThread.start();
-        return jobThread;
-    }
-
-    public class JobThread extends Thread {
-
-        private Runnable job;
-        private boolean firstThread = false;
-
-        /**
-         * Constructs a new {@code JobThread}.
-         * @param threadId Thread ID
-         */
-        public JobThread(int threadId) {
-            super("OSMJobThread " + threadId);
-            setDaemon(true);
-            job = null;
-        }
-
-        @Override
-        public void run() {
-            executeJobs();
-            synchronized (instance) {
-                workerThreadCount--;
-            }
-        }
-
-        protected void executeJobs() {
-            while (!isInterrupted()) {
-                try {
-                    synchronized (instance) {
-                        workerThreadIdleCount++;
-                    }
-                    if (modeLIFO) {
-                        if (firstThread)
-                            job = jobQueue.takeLast();
-                        else
-                            job = jobQueue.pollLast(workerThreadTimeout, TimeUnit.SECONDS);
-                    } else {
-                        if (firstThread)
-                            job = jobQueue.take();
-                        else
-                            job = jobQueue.poll(workerThreadTimeout, TimeUnit.SECONDS);
-                    }
-                } catch (InterruptedException e1) {
-                    return;
-                } finally {
-                    synchronized (instance) {
-                        workerThreadIdleCount--;
-                    }
-                }
-                if (job == null)
-                    return;
-                try {
-                    job.run();
-                    job = null;
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-}
diff --git a/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java b/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
index c26a61c..7064be3 100644
--- a/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
+++ b/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
@@ -9,6 +9,8 @@ import java.net.URLConnection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
 
 import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
@@ -20,6 +22,7 @@ import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
  * @author Jan Peter Stotz
  */
 public class OsmTileLoader implements TileLoader {
+    private static final Executor jobDispatcher = Executors.newSingleThreadExecutor();
 
     private final class OsmTileJob implements TileJob {
         private final Tile tile;
@@ -88,7 +91,7 @@ public class OsmTileLoader implements TileLoader {
         @Override
         public void submit(boolean force) {
             this.force = force;
-            run();
+            jobDispatcher.execute(this);
         }
     }
 
@@ -177,4 +180,9 @@ public class OsmTileLoader implements TileLoader {
     public String toString() {
         return getClass().getSimpleName();
     }
+
+    @Override
+    public void cancelOutstandingTasks() {
+        // intentionally left empty - OsmTileLoader doesn't maintain queue
+    }
 }
diff --git a/src/org/openstreetmap/gui/jmapviewer/Tile.java b/src/org/openstreetmap/gui/jmapviewer/Tile.java
index d4bf072..4edbf43 100644
--- a/src/org/openstreetmap/gui/jmapviewer/Tile.java
+++ b/src/org/openstreetmap/gui/jmapviewer/Tile.java
@@ -95,7 +95,7 @@ public class Tile {
          * Wraps callable so it is evaluated only once
          * @param callable to cache
          */
-        public CachedCallable(Callable<V> callable) {
+        CachedCallable(Callable<V> callable) {
             this.callable = callable;
         }
 
@@ -434,4 +434,13 @@ public class Tile {
     public TileSource getTileSource() {
         return source;
     }
+
+    /**
+     * indicate that loading process for this tile has been canceled
+     */
+    public void loadingCanceled() {
+        loading = false;
+        loaded = false;
+    }
+
 }
diff --git a/src/org/openstreetmap/gui/jmapviewer/TileController.java b/src/org/openstreetmap/gui/jmapviewer/TileController.java
index efd2287..c22cc05 100644
--- a/src/org/openstreetmap/gui/jmapviewer/TileController.java
+++ b/src/org/openstreetmap/gui/jmapviewer/TileController.java
@@ -1,7 +1,6 @@
 // License: GPL. For details, see Readme.txt file.
 package org.openstreetmap.gui.jmapviewer;
 
-import org.openstreetmap.gui.jmapviewer.JobDispatcher.JobThread;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileCache;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
@@ -12,18 +11,15 @@ public class TileController {
     protected TileCache tileCache;
     protected TileSource tileSource;
 
-    protected JobDispatcher jobDispatcher;
-
     public TileController(TileSource source, TileCache tileCache, TileLoaderListener listener) {
         this.tileSource = source;
         this.tileLoader = new OsmTileLoader(listener);
         this.tileCache = tileCache;
-        this.jobDispatcher = JobDispatcher.getInstance();
     }
 
     /**
      * retrieves a tile from the cache. If the tile is not present in the cache
-     * a load job is added to the working queue of {@link JobThread}.
+     * a load job is added to the working queue of {@link TileLoader}.
      *
      * @param tilex the X position of the tile
      * @param tiley the Y position of the tile
@@ -80,8 +76,9 @@ public class TileController {
 
     /**
      * Removes all jobs from the queue that are currently not being processed.
+     *
      */
     public void cancelOutstandingJobs() {
-        jobDispatcher.cancelOutstandingJobs();
+        tileLoader.cancelOutstandingTasks();
     }
 }
diff --git a/src/org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java b/src/org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java
index 7ffc3ce..34996df 100644
--- a/src/org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java
+++ b/src/org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java
@@ -11,7 +11,7 @@ import java.util.EventObject;
  *
  */
 public class JMVCommandEvent extends EventObject {
-    public static enum COMMAND {
+    public enum COMMAND {
         MOVE,
         ZOOM
     }
diff --git a/src/org/openstreetmap/gui/jmapviewer/interfaces/TileLoader.java b/src/org/openstreetmap/gui/jmapviewer/interfaces/TileLoader.java
index 60fd704..8d1b5fd 100644
--- a/src/org/openstreetmap/gui/jmapviewer/interfaces/TileLoader.java
+++ b/src/org/openstreetmap/gui/jmapviewer/interfaces/TileLoader.java
@@ -20,4 +20,10 @@ public interface TileLoader {
      *          action.
      */
     TileJob createTileLoaderJob(Tile tile);
+
+    /**
+     * cancels all outstanding tasks in the queue. This should rollback the state of the tiles in the queue
+     * to loading = false / loaded = false
+     */
+    void cancelOutstandingTasks();
 }
diff --git a/src/org/openstreetmap/gui/jmapviewer/interfaces/TileSource.java b/src/org/openstreetmap/gui/jmapviewer/interfaces/TileSource.java
index 64aa6c4..742b5a2 100644
--- a/src/org/openstreetmap/gui/jmapviewer/interfaces/TileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/interfaces/TileSource.java
@@ -17,34 +17,6 @@ import org.openstreetmap.gui.jmapviewer.TileXY;
 public interface TileSource extends Attributed {
 
     /**
-     * Specifies the different mechanisms for detecting updated tiles
-     * respectively only download newer tiles than those stored locally.
-     *
-     * <ul>
-     * <li>{@link #IfNoneMatch} Server provides ETag header entry for all tiles
-     * and <b>supports</b> conditional download via <code>If-None-Match</code>
-     * header entry.</li>
-     * <li>{@link #ETag} Server provides ETag header entry for all tiles but
-     * <b>does not support</b> conditional download via
-     * <code>If-None-Match</code> header entry.</li>
-     * <li>{@link #IfModifiedSince} Server provides Last-Modified header entry
-     * for all tiles and <b>supports</b> conditional download via
-     * <code>If-Modified-Since</code> header entry.</li>
-     * <li>{@link #LastModified} Server provides Last-Modified header entry for
-     * all tiles but <b>does not support</b> conditional download via
-     * <code>If-Modified-Since</code> header entry.</li>
-     * <li>{@link #None} The server does not support any of the listed
-     * mechanisms.</li>
-     * </ul>
-     *
-     * @deprecated not used anymore
-     */
-    @Deprecated
-    enum TileUpdate {
-        IfNoneMatch, ETag, IfModifiedSince, LastModified, None
-    }
-
-    /**
      * Specifies the maximum zoom value. The number of zoom levels is [0..
      * {@link #getMaxZoom()}].
      *
@@ -63,12 +35,6 @@ public interface TileSource extends Attributed {
     int getMinZoom();
 
     /**
-     * @return The supported tile update mechanism
-     * @see TileUpdate
-     */
-    TileUpdate getTileUpdate();
-
-    /**
      * A tile layer name as displayed to the user.
      *
      * @return Name of the tile layer
@@ -130,26 +96,6 @@ public interface TileSource extends Attributed {
     double getDistance(double la1, double lo1, double la2, double lo2);
 
     /**
-     * Transform longitude to pixelspace.
-     * @param aLongitude longitude
-     * @param aZoomlevel zoom level
-     * @return [0..2^Zoomlevel*TILE_SIZE[
-     * @deprecated use {@link #latLonToXY(double, double, int)} instead
-     */
-    @Deprecated
-    int lonToX(double aLongitude, int aZoomlevel);
-
-    /**
-     * Transforms latitude to pixelspace.
-     * @param aLat latitude
-     * @param aZoomlevel zoom level
-     * @return [0..2^Zoomlevel*TILE_SIZE[
-     * @deprecated use {@link #latLonToXY(double, double, int)} instead
-     */
-    @Deprecated
-    int latToY(double aLat, int aZoomlevel);
-
-    /**
      * @param lon longitude
      * @param lat latitude
      * @param zoom zoom level
@@ -165,26 +111,6 @@ public interface TileSource extends Attributed {
     Point latLonToXY(ICoordinate point, int zoom);
 
     /**
-     * Transforms pixel coordinate X to longitude
-     * @param aX X coordinate
-     * @param aZoomlevel zoom level
-     * @return ]-180..180[
-     * @deprecated use {@link #xyToLatLon(int, int, int)} instead
-     */
-    @Deprecated
-    double XToLon(int aX, int aZoomlevel);
-
-    /**
-     * Transforms pixel coordinate Y to latitude.
-     * @param aY Y coordinate
-     * @param aZoomlevel zoom level
-     * @return [MIN_LAT..MAX_LAT]
-     * @deprecated use {@link #xyToLatLon(int, int, int)} instead
-     */
-    @Deprecated
-    double YToLat(int aY, int aZoomlevel);
-
-    /**
      * @param point point
      * @param zoom zoom level
      * @return WGS84 Coordinates of given point
@@ -201,26 +127,6 @@ public interface TileSource extends Attributed {
     ICoordinate xyToLatLon(int x, int y, int zoom);
 
     /**
-     * Transforms longitude to X tile coordinate.
-     * @param lon longitude
-     * @param zoom zoom level
-     * @return [0..2^Zoomlevel[
-     * @deprecated use {@link #latLonToTileXY(double, double, int)} instead
-     */
-    @Deprecated
-    double lonToTileX(double lon, int zoom);
-
-    /**
-     * Transforms latitude to Y tile coordinate.
-     * @param lat latitude
-     * @param zoom zoom level
-     * @return [0..2^Zoomlevel[
-     * @deprecated use {@link #latLonToTileXY(double, double, int)} instead
-     */
-    @Deprecated
-    double latToTileY(double lat, int zoom);
-
-    /**
      * @param lon longitude
      * @param lat latitude
      * @param zoom zoom level
@@ -237,26 +143,6 @@ public interface TileSource extends Attributed {
     TileXY latLonToTileXY(ICoordinate point, int zoom);
 
     /**
-     * Transforms tile X coordinate to longitude.
-     * @param x X coordinate
-     * @param zoom zoom level
-     * @return ]-180..180[
-     * @deprecated use {@link #tileXYToLatLon(int, int, int)} instead
-     */
-    @Deprecated
-    double tileXToLon(int x, int zoom);
-
-    /**
-     * Transforms tile Y coordinate to latitude.
-     * @param y Y coordinate
-     * @param zoom zoom level
-     * @return [MIN_LAT..MAX_LAT]
-     * @deprecated use {@link #tileXYToLatLon(int, int, int)} instead
-     */
-    @Deprecated
-    double tileYToLat(int y, int zoom);
-
-    /**
      * @param xy X/Y coordinates
      * @param zoom zoom level
      * @return WGS84 coordinates of given tile
diff --git a/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractMapQuestTileSource.java b/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractMapQuestTileSource.java
index 5db7eca..cd2553c 100644
--- a/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractMapQuestTileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractMapQuestTileSource.java
@@ -11,7 +11,7 @@ import javax.xml.bind.DatatypeConverter;
 public class AbstractMapQuestTileSource extends AbstractOsmTileSource {
 
     // MapQuest logo in base64: http://developer.mapquest.com/content/osm/mq_logo.png
-    private static final String LOGO_BASE64 = 
+    private static final String LOGO_BASE64 =
             "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJl"+
             "YWR5ccllPAAAAZtJREFUeNpi/P//P0PPcYf/DGSAEssDjIzdx+zJ0gwDLMQqVBWyZVAStGRgBMK33x8wnH62"+
             "kngD+DmkGBwUshn42SXA/P8M/xg+/3rDcOPNPuIMMJeKAmv+8OMpw7ffHxikeLUZXBTzgez3DEzEGMDGzAmm"+
@@ -27,7 +27,7 @@ public class AbstractMapQuestTileSource extends AbstractOsmTileSource {
     protected static final String MAPQUEST_WEBSITE = "http://www.mapquest.com";
 
     private static final int NUMBER_OF_SERVERS = 4;
-    
+
     private int SERVER_NUM = 1;
 
     public AbstractMapQuestTileSource(String name, String base_url, String id) {
@@ -42,11 +42,6 @@ public class AbstractMapQuestTileSource extends AbstractOsmTileSource {
     }
 
     @Override
-    public TileUpdate getTileUpdate() {
-        return TileUpdate.IfModifiedSince;
-    }
-
-    @Override
     public Image getAttributionImage() {
         try {
             return ImageIO.read(new ByteArrayInputStream(DatatypeConverter.parseBase64Binary(LOGO_BASE64)));
diff --git a/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractTMSTileSource.java b/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractTMSTileSource.java
index a2d2582..b8a2683 100644
--- a/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractTMSTileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/tilesources/AbstractTMSTileSource.java
@@ -128,16 +128,6 @@ public abstract class AbstractTMSTileSource extends AbstractTileSource {
     }
 
     @Override
-    public int lonToX(double lon, int zoom) {
-        return (int) osmMercator.lonToX(lon, zoom);
-    }
-
-    @Override
-    public int latToY(double lat, int zoom) {
-        return (int) osmMercator.latToY(lat, zoom);
-    }
-
-    @Override
     public Point latLonToXY(double lat, double lon, int zoom) {
         return new Point(
                 (int) osmMercator.lonToX(lon, zoom),
@@ -151,16 +141,6 @@ public abstract class AbstractTMSTileSource extends AbstractTileSource {
     }
 
     @Override
-    public double XToLon(int x, int zoom) {
-        return osmMercator.xToLon(x, zoom);
-    }
-
-    @Override
-    public double YToLat(int y, int zoom) {
-        return osmMercator.yToLat(y, zoom);
-    }
-
-    @Override
     public ICoordinate xyToLatLon(Point point, int zoom) {
         return xyToLatLon(point.x, point.y, zoom);
     }
@@ -174,16 +154,6 @@ public abstract class AbstractTMSTileSource extends AbstractTileSource {
     }
 
     @Override
-    public double latToTileY(double lat, int zoom) {
-        return osmMercator.latToY(lat, zoom) / tileSize;
-    }
-
-    @Override
-    public double lonToTileX(double lon, int zoom) {
-        return osmMercator.lonToX(lon, zoom) / tileSize;
-    }
-
-    @Override
     public TileXY latLonToTileXY(double lat, double lon, int zoom) {
         return new TileXY(
                 osmMercator.lonToX(lon, zoom) / tileSize,
@@ -197,16 +167,6 @@ public abstract class AbstractTMSTileSource extends AbstractTileSource {
     }
 
     @Override
-    public double tileYToLat(int y, int zoom) {
-        return osmMercator.yToLat(y * tileSize, zoom);
-    }
-
-    @Override
-    public double tileXToLon(int x, int zoom) {
-        return osmMercator.xToLon(x * tileSize, zoom);
-    }
-
-    @Override
     public ICoordinate tileXYToLatLon(TileXY xy, int zoom) {
         return tileXYToLatLon(xy.getXIndex(), xy.getYIndex(), zoom);
     }
diff --git a/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java b/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java
index 0f4887e..2a24961 100644
--- a/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java
@@ -11,8 +11,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.FutureTask;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.regex.Pattern;
@@ -172,11 +172,6 @@ public class BingAerialTileSource extends AbstractTMSTileSource {
     }
 
     @Override
-    public TileUpdate getTileUpdate() {
-        return TileUpdate.IfNoneMatch;
-    }
-
-    @Override
     public boolean requiresAttribution() {
         return true;
     }
@@ -256,12 +251,14 @@ public class BingAerialTileSource extends AbstractTMSTileSource {
             // see http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
             synchronized (BingAerialTileSource.class) {
                 if (attributions == null) {
-                    attributions = Executors.newSingleThreadExecutor().submit(getAttributionLoaderCallable());
+                  final FutureTask<List<Attribution>> loader = new FutureTask<>(getAttributionLoaderCallable());
+                  new Thread(loader, "bing-attribution-loader").start();
+                  attributions = loader;
                 }
             }
         }
         try {
-            return attributions.get(1000, TimeUnit.MILLISECONDS);
+            return attributions.get(10, TimeUnit.MILLISECONDS);
         } catch (TimeoutException ex) {
             System.err.println("Bing: attribution data is not yet loaded.");
         } catch (ExecutionException ex) {
diff --git a/src/org/openstreetmap/gui/jmapviewer/tilesources/OsmTileSource.java b/src/org/openstreetmap/gui/jmapviewer/tilesources/OsmTileSource.java
index 99adb0c..0188bad 100644
--- a/src/org/openstreetmap/gui/jmapviewer/tilesources/OsmTileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/tilesources/OsmTileSource.java
@@ -30,11 +30,6 @@ public class OsmTileSource {
             serverNum = (serverNum + 1) % SERVER.length;
             return url;
         }
-
-        @Override
-        public TileUpdate getTileUpdate() {
-            return TileUpdate.IfNoneMatch;
-        }
     }
 
     /**
@@ -66,10 +61,5 @@ public class OsmTileSource {
         public int getMaxZoom() {
             return 18;
         }
-
-        @Override
-        public TileUpdate getTileUpdate() {
-            return TileUpdate.LastModified;
-        }
     }
 }
diff --git a/src/org/openstreetmap/gui/jmapviewer/tilesources/ScanexTileSource.java b/src/org/openstreetmap/gui/jmapviewer/tilesources/ScanexTileSource.java
index 0dce239..e535231 100644
--- a/src/org/openstreetmap/gui/jmapviewer/tilesources/ScanexTileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/tilesources/ScanexTileSource.java
@@ -92,29 +92,6 @@ public class ScanexTileSource extends TMSTileSource {
         return this.layer.getUri() + "&apikey=" + API_KEY + "&x=" + tilex + "&y=" + tiley + "&z=" + zoom;
     }
 
-    @Override
-    public int latToY(double lat, int zoom) {
-        return (int) (latToTileY(lat, zoom) * tileSize);
-    }
-
-    @Override
-    public double YToLat(int y, int zoom) {
-        return tileYToLat((double) y / tileSize, zoom);
-    }
-
-    @Override
-    public double latToTileY(double lat, int zoom) {
-        double tmp = Math.tan(Math.PI/4 * (1 + lat/90));
-        double pow = Math.pow(Math.tan(Math.PI/4 + Math.asin(E * Math.sin(Math.toRadians(lat)))/2), E);
-
-        return (EQUATOR/2 - (RADIUS_E * Math.log(tmp/pow))) * Math.pow(2.0, zoom) / EQUATOR;
-    }
-
-    @Override
-    public double tileYToLat(int y, int zoom) {
-        return tileYToLat((double) y, zoom);
-    }
-
     /*
      * To solve inverse formula latitude = f(y) we use
      * Newton's method. We cache previous calculated latitude,
diff --git a/src/org/openstreetmap/gui/jmapviewer/tilesources/TMSTileSource.java b/src/org/openstreetmap/gui/jmapviewer/tilesources/TMSTileSource.java
index 66673de..d224240 100644
--- a/src/org/openstreetmap/gui/jmapviewer/tilesources/TMSTileSource.java
+++ b/src/org/openstreetmap/gui/jmapviewer/tilesources/TMSTileSource.java
@@ -22,9 +22,4 @@ public class TMSTileSource extends AbstractTMSTileSource {
     public int getMaxZoom() {
         return (maxZoom == 0) ? super.getMaxZoom() : maxZoom;
     }
-
-    @Override
-    public TileUpdate getTileUpdate() {
-        return TileUpdate.IfNoneMatch;
-    }
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/jmapviewer.git



More information about the Pkg-grass-devel mailing list