Interface CoordinateSystem


  • @Draft
    @UML(identifier="GM_CoordinateSystem",
         specification=ISO_19107)
    public interface CoordinateSystem
    Organizes the manner in which the direct positions are described.
    Since:
    3.1
    TODO:
    This interface is defined in the ISO 19107 draft. But maybe we should consider retrofitting it in the GeoAPI org.opengis.referencing.cs.CoordinateSystem interface instead. See GEO-202.
    • Method Detail

      • getDimension

        @Draft
        @UML(identifier="dimension",
             obligation=MANDATORY,
             specification=ISO_19107)
        int getDimension()
        The size of the ordinate array needed to represent a coordinate in this CoordinateSystem, when non-homogeneous representations are used. For example the dimension of (X, Y, Z) is 3 and the dimension of (Longitude, Latitude) is 2.
        Returns:
        the dimension of this coordinate system.
      • getName

        @Draft
        @UML(identifier="name",
             obligation=OPTIONAL,
             specification=ISO_19107)
        String getName()
        A character string identifier for this coordinate system. Since many of these systems will be non-standard, this name may not map to any well know identifier, and the context of the system may be required to understand how the mapping of DirectPositions to real locations is accomplished.
        Returns:
        the name of this coordinate system, or null if unspecified.
      • getPermutation

        @Draft
        @UML(identifier="permutation",
             obligation=OPTIONAL,
             specification=ISO_19107)
        Permutation getPermutation()
        Describes how offsets in the coordinate arrays are rearranged for storage within the DirectPosition instances. The representation is as a list of integers representing the new order of the coordinate array. The offsets are expressed in 0-up order. If the permutation is absent, then the order of the DirectPosition.getCoordinate() array will be the natural order implied by the manner in which the CoordinateSystem is constructed.
        Note: The most common use of the permutation is to allow the DirectPositions coordinates to be stored in an order consistent with the mathematical requirement to be right-handed. For example, a lat-long 2D system is left-handed so that swapping the first two offsets gives a system more consistent with most mathematical libraries.
        Returns:
        the offsets in the coordinate arrays for storage within the direct positions, or null for natural ordering.
      • getOrientation

        @Draft
        @UML(identifier="orientation",
             obligation=OPTIONAL,
             specification=ISO_19107)
        Handed getOrientation()
        The enumerated value for “left” or “right” which will identify the spatial orientation of this coordinate system in its unpermuted state. This information is needed to properly calculate visual representations of the underlying geometry. Most display systems are right-handed (OpenGL) and most GeographicCRS systems are left-handed, which means that a geometric object in a GeographicCRS may require special treatment to obtain proper orientation of views to agree with reality. Orientation is also dependent on coordinate system handedness, and is discussed in this standard in the clauses for surfaces and solids. If not specified, the by default “right” which is the standard for Mathematics and Geometry.
        Note: A permutation can be represented by sequence of transpositions each swapping exactly two offsets. Although the number of transpositions is not fixed, if one representation uses an even number, then all representations use an even number. Using this, permutations can be classified as either odd or even. An odd permutation changes the handedness of the system. An even permutation does not.
        Returns:
        the coordinate system orientation, or null if unspecified.