Class EWKTUtils


  • public final class EWKTUtils
    extends java.lang.Object
    EWKT format support for GEOMETRY data type.

    This class provides limited support of EWKT. EWKT is based on Well-known Text Representation (WKT) from OGC 06-103r4 and includes additional PostGIS extensions. SRID support from EWKT is implemented.

    • Field Detail

      • TYPES

        static final java.lang.String[] TYPES
        0-based type names of geometries, subtract 1 from type code to get index in this array.
      • DIMENSION_SYSTEMS

        private static final java.lang.String[] DIMENSION_SYSTEMS
        Names of dimension systems.
    • Constructor Detail

      • EWKTUtils

        private EWKTUtils()
    • Method Detail

      • ewkb2ewkt

        public static java.lang.String ewkb2ewkt​(byte[] ewkb)
        Converts EWKB to EWKT.
        Parameters:
        ewkb - source EWKB
        Returns:
        EWKT representation
      • ewkb2ewkt

        public static java.lang.String ewkb2ewkt​(byte[] ewkb,
                                                 int dimensionSystem)
        Converts EWKB to EWKT.
        Parameters:
        ewkb - source EWKB
        dimensionSystem - dimension system
        Returns:
        EWKT representation
      • ewkt2ewkb

        public static byte[] ewkt2ewkb​(java.lang.String ewkt)
        Converts EWKT to EWKB.
        Parameters:
        ewkt - source EWKT
        Returns:
        EWKB representation
      • ewkt2ewkb

        public static byte[] ewkt2ewkb​(java.lang.String ewkt,
                                       int dimensionSystem)
        Converts EWKT to EWKB.
        Parameters:
        ewkt - source EWKT
        dimensionSystem - dimension system
        Returns:
        EWKB representation
      • parseEWKT

        public static void parseEWKT​(java.lang.String ewkt,
                                     GeometryUtils.Target target)
        Parses a EWKT.
        Parameters:
        ewkt - source EWKT
        target - output target
      • parseGeometryType

        public static int parseGeometryType​(java.lang.String s)
        Parses geometry type and dimension system from the given string.
        Parameters:
        s - string to parse
        Returns:
        geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000)
        Throws:
        java.lang.IllegalArgumentException - if input is not valid
      • formatGeometryTypeAndDimensionSystem

        public static java.lang.StringBuilder formatGeometryTypeAndDimensionSystem​(java.lang.StringBuilder builder,
                                                                                   int type)
        Formats type and dimension system as a string.
        Parameters:
        builder - string builder
        type - OGC geometry code format (type + dimensionSystem * 1000)
        Returns:
        the specified string builder
        Throws:
        java.lang.IllegalArgumentException - if type is not valid
      • parseEWKT

        private static void parseEWKT​(EWKTUtils.EWKTSource source,
                                      GeometryUtils.Target target,
                                      int parentType,
                                      int dimensionSystem)
        Parses a EWKB.
        Parameters:
        source - EWKT source
        target - output target
        parentType - type of parent geometry collection, or 0 for the root geometry
        dimensionSystem - dimension system of parent geometry
      • readRing

        private static java.util.ArrayList<double[]> readRing​(EWKTUtils.EWKTSource source,
                                                              int dimensionSystem)
      • addRing

        private static void addRing​(java.util.ArrayList<double[]> ring,
                                    GeometryUtils.Target target)
      • readCoordinate

        private static double[] readCoordinate​(EWKTUtils.EWKTSource source,
                                               int dimensionSystem)
      • getDimensionSystem

        public static int getDimensionSystem​(java.lang.String ewkt)
        Reads the dimension system from EWKT.
        Parameters:
        ewkt - EWKT source
        Returns:
        the dimension system