Ticket #21260: 21260.patch

File 21260.patch, 3.3 KB (added by taylor.smock, 3 years ago)
  • src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java

    diff --git a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
    index 0813aaf25d..16e81102ee 100644
    a b implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi  
    888888        Tile tile = getTile(x, y, zoom);
    889889        if (tile == null) {
    890890            if (coordinateConverter.requiresReprojection()) {
    891                 tile = new ReprojectionTile(tileSource, x, y, zoom);
     891                tile = new ReprojectionTile(createTile(tileSource, x, y, zoom));
    892892            } else {
    893893                tile = createTile(tileSource, x, y, zoom);
    894894            }
  • src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java

    diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java b/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java
    index 2f3d948b46..0da3cdf346 100644
    a b package org.openstreetmap.josm.gui.layer.imagery;  
    44import java.awt.Dimension;
    55import java.awt.geom.Point2D;
    66import java.awt.image.BufferedImage;
     7import java.io.IOException;
     8import java.io.InputStream;
    79
    810import org.openstreetmap.gui.jmapviewer.Tile;
    911import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
    1012import org.openstreetmap.josm.data.ProjectionBounds;
    1113import org.openstreetmap.josm.data.coor.EastNorth;
    1214import org.openstreetmap.josm.data.imagery.CoordinateConversion;
     15import org.openstreetmap.josm.data.imagery.vectortile.VectorTile;
    1316import org.openstreetmap.josm.data.projection.Projection;
    1417import org.openstreetmap.josm.data.projection.ProjectionRegistry;
    1518import org.openstreetmap.josm.data.projection.Projections;
    import org.openstreetmap.josm.tools.bugreport.BugReport;  
    2528 */
    2629public class ReprojectionTile extends Tile {
    2730
     31    private final Tile tile;
    2832    protected TileAnchor anchor;
    2933    private double nativeScale;
    3034    protected boolean maxZoomReached;
    3135
    3236    /**
    3337     * Constructs a new {@code ReprojectionTile}.
    34      * @param source sourec tile
     38     * @param source source tile
    3539     * @param xtile X coordinate
    3640     * @param ytile Y coordinate
    3741     * @param zoom zoom level
    3842     */
    3943    public ReprojectionTile(TileSource source, int xtile, int ytile, int zoom) {
    4044        super(source, xtile, ytile, zoom);
     45        this.tile = null;
     46    }
     47
     48    /**
     49     * Create a reprojection tile for a specific tile
     50     * @param tile The tile to use
     51     */
     52    public ReprojectionTile(Tile tile) {
     53        super(tile.getTileSource(), tile.getXtile(), tile.getYtile(), tile.getZoom());
     54        this.tile = tile;
    4155    }
    4256
    4357    /**
    public class ReprojectionTile extends Tile {  
    7488        return !maxZoomReached || currentScale >= nativeScale;
    7589    }
    7690
     91    @Override
     92    public void loadImage(InputStream inputStream) throws IOException {
     93        if (this.tile instanceof VectorTile) {
     94            this.tile.loadImage(inputStream);
     95        } else {
     96            super.loadImage(inputStream);
     97        }
     98    }
     99
    77100    @Override
    78101    public void setImage(BufferedImage image) {
    79102        if (image == null) {