Ignore:
Timestamp:
2017-04-09T11:08:10+02:00 (7 years ago)
Author:
bastiK
Message:

fixed #7427 - Support reprojection (warping) of imagery layer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/WMTSLayer.java

    r11789 r11858  
    33
    44import java.io.IOException;
    5 import java.util.Set;
     5import java.util.Collection;
    66
    77import org.apache.commons.jcs.access.CacheAccess;
     
    1515import org.openstreetmap.josm.data.projection.Projection;
    1616import org.openstreetmap.josm.gui.layer.imagery.TileSourceDisplaySettings;
     17import org.openstreetmap.josm.tools.Utils;
    1718
    1819/**
     
    7576            return getMaxZoomLvl();
    7677        }
    77         double displayScale = Main.map.mapView.getScale() * Main.getProjection().getMetersPerUnit(); // meter per pixel
     78        double displayScale = Main.map.mapView.getScale();
     79        if (coordinateConverter.requiresReprojection()) {
     80            displayScale *= Main.getProjection().getMetersPerUnit();
     81        }
    7882        Scale snap = scaleList.getSnapScale(displayScale, false);
    79         return Math.max(
    80                 getMinZoomLvl(),
    81                 Math.min(
    82                         snap != null ? snap.getIndex() : getMaxZoomLvl(),
    83                         getMaxZoomLvl()
    84                         )
    85                 );
     83        return Utils.clamp(snap != null ? snap.getIndex() : getMaxZoomLvl(),
     84                getMinZoomLvl(), getMaxZoomLvl());
    8685    }
    8786
     
    9291
    9392    @Override
    94     public boolean isProjectionSupported(Projection proj) {
    95         Set<String> supportedProjections = tileSource.getSupportedProjections();
    96         return supportedProjections.contains(proj.toCode());
    97     }
    98 
    99     @Override
    100     public String nameSupportedProjections() {
    101         StringBuilder ret = new StringBuilder();
    102         for (String e: tileSource.getSupportedProjections()) {
    103             ret.append(e).append(", ");
    104         }
    105         return ret.length() > 2 ? ret.substring(0, ret.length()-2) : ret.toString();
     93    public Collection<String> getNativeProjections() {
     94        return tileSource.getSupportedProjections();
    10695    }
    10796
Note: See TracChangeset for help on using the changeset viewer.