All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geotools.styling.UomOgcMapping Maven / Gradle / Ivy

Go to download

The main module contains the GeoTools public interfaces that are used by other GeoTools modules (and GeoTools applications). Where possible we make use industry standard terms as provided by OGC and ISO standards. The formal GeoTools public api consists of gt-metadata, jts and the gt-main module. The main module contains the default implementations that are available provided to other GeoTools modules using our factory system. Factories are obtained from an appropriate FactoryFinder, giving applications a chance configure the factory used using the Factory Hints facilities. FilterFactory ff = CommonFactoryFinder.getFilterFactory(); Expression expr = ff.add( expression1, expression2 ); If you find yourself using implementation specific classes chances are you doing it wrong: Expression expr = new AddImpl( expression1, expressiom2 );

There is a newer version: 24.2-oss84-1
Show newest version
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2005-2008, Open Source Geospatial Foundation (OSGeo)
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotools.styling;

import javax.measure.Unit;
import javax.measure.quantity.Length;
import si.uom.SI;
import systems.uom.common.USCustomary;

/**
 * Defines the Units of Measure (UOMs) specified by the OGC SE standard and their mappings to Java
 * Units defined in javax.measure.unit. Each entry in this enum provides both the Java
 * Unit for the given UOM and the corresponding String that is defined by the SE standard.
 */
public enum UomOgcMapping {
    METRE(SI.METRE, "http://www.opengeospatial.org/se/units/metre"),
    FOOT(USCustomary.FOOT, "http://www.opengeospatial.org/se/units/foot"),
    PIXEL(org.geotools.measure.Units.PIXEL, "http://www.opengeospatial.org/se/units/pixel");

    private String seString;

    private Unit unit;

    /**
     * Internal constructor: specifies the UOM mapping passing a specific Java Unit and the
     * corresponding OGC SE string.
     *
     * @param unit a Java Unit (e.g., SI.METRE).
     * @param seString a String that follows the OGC SE specification.
     */
    private UomOgcMapping(Unit unit, String seString) {
        this.unit = unit;
        this.seString = seString;
    }

    @Override
    public String toString() {
        return seString;
    }

    /**
     * Returns the String defined by the OGC SE specification for the unit of measure.
     *
     * @return a String that follows the OGC SE specification
     */
    public String getSEString() {
        return seString;
    }

    /**
     * Returns the Java Unit that corresponds to the unit of measure.
     *
     * @return a Java Unit (e.g., SI.METRE).
     */
    public Unit getUnit() {
        return unit;
    }

    /**
     * Returns the appropriate UOM mapping for a given OGC SE standard string.
     *
     * @param seString a String that follows the OGC SE specification.
     * @return the corresponding UnitOfMeasure.
     * @throws IllegalArgumentException if the provided String is not a valid OGC SE value.
     */
    public static UomOgcMapping get(String seString) throws IllegalArgumentException {
        for (UomOgcMapping uom : UomOgcMapping.values()) {
            if (uom.getSEString().equals(seString)) return uom;
        }
        throw new IllegalArgumentException(
                "'" + seString + "' is not a valid OGC SE standard Unit of Measure");
    }

    /**
     * Returns the appropriate UOM mapping for a given Java Unit.
     *
     * @param unit a Java Unit (e.g., SI.METRE).
     * @return the corresponding UnitOfMeasure.
     * @throws IllegalArgumentException if the provided Unit is not part of the OGC SE
     *     specification.
     */
    public static UomOgcMapping get(Unit unit) throws IllegalArgumentException {
        for (UomOgcMapping uom : UomOgcMapping.values()) {
            if (uom.getUnit().equals(unit)) return uom;
        }
        throw new IllegalArgumentException(
                "'" + unit + "' is not a valid OGC SE standard Unit of Measure");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy