Ignore:
Timestamp:
2016-01-25T12:36:19+01:00 (8 years ago)
Author:
bastiK
Message:

fix WMTS with EPSG:4326 broken in [9608] (see #12186)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/projection/CustomProjection.java

    r9608 r9628  
    5555    protected String cacheDir;
    5656    protected Bounds bounds;
    57     private double metersPerUnit = 1;
     57    private double metersPerUnit;
     58    private double metersPerUnitNoDegrees;
    5859    private String axis = "enu"; // default axis orientation is East, North, Up
    5960
     
    286287                this.code = s;
    287288            }
     289            boolean defaultUnits = true;
    288290            s = parameters.get(Param.units.key);
    289291            if (s != null) {
     
    291293                if (UNITS_TO_METERS.containsKey(s)) {
    292294                    this.metersPerUnit = UNITS_TO_METERS.get(s);
     295                    this.metersPerUnitNoDegrees = this.metersPerUnit;
     296                    defaultUnits = false;
    293297                } else {
    294298                    Main.warn("No metersPerUnit found for: " + s);
     
    298302            if (s != null) {
    299303                this.metersPerUnit = parseDouble(s, Param.to_meter.key);
     304                this.metersPerUnitNoDegrees = this.metersPerUnit;
     305                defaultUnits = false;
     306            }
     307            if (defaultUnits) {
     308                this.metersPerUnit = proj.isGeographic() ? METER_PER_UNIT_DEGREE : 1;
     309                this.metersPerUnitNoDegrees = 1;
    300310            }
    301311            s = parameters.get(Param.axis.key);
     
    700710        return metersPerUnit;
    701711    }
     712   
     713    /**
     714     * Like {@link #getMetersPerUnit()}, but has default value 1 for a
     715     * geographic CRS. I.e. by default, degrees are not converted to meters,
     716     * but left alone (similar to proj.4 behavior).
     717     * @return
     718     */
     719    public double getMetersPerUnitProj() {
     720        return metersPerUnitNoDegrees;
     721    }
    702722
    703723    @Override
Note: See TracChangeset for help on using the changeset viewer.