Class EWKTUtils

java.lang.Object
org.h2.util.geometry.EWKTUtils

public final class EWKTUtils extends 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 Details

    • TYPES

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

      private static final String[] DIMENSION_SYSTEMS
      Names of dimension systems.
  • Constructor Details

    • EWKTUtils

      private EWKTUtils()
  • Method Details

    • ewkb2ewkt

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

      public static 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(String ewkt)
      Converts EWKT to EWKB.
      Parameters:
      ewkt - source EWKT
      Returns:
      EWKB representation
    • ewkt2ewkb

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

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

      public static int parseGeometryType(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:
      IllegalArgumentException - if input is not valid
    • parseDimensionSystem

      public static int parseDimensionSystem(String s)
      Parses a dimension system from the given string.
      Parameters:
      s - string to parse
      Returns:
      dimension system, one of XYZ, XYM, or XYZM
      Throws:
      IllegalArgumentException - if input is not valid
      See Also:
    • formatGeometryTypeAndDimensionSystem

      public static StringBuilder formatGeometryTypeAndDimensionSystem(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:
      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
    • parseCollection

      private static void parseCollection(EWKTUtils.EWKTSource source, GeometryUtils.Target target, int type, int parentType, int dimensionSystem)
    • parseMultiPointAlternative

      private static void parseMultiPointAlternative(EWKTUtils.EWKTSource source, GeometryUtils.Target target, int dimensionSystem)
    • readRing

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

      private static void addRing(ArrayList<double[]> ring, GeometryUtils.Target target)
    • addCoordinate

      private static void addCoordinate(EWKTUtils.EWKTSource source, GeometryUtils.Target target, int dimensionSystem, int index, int total)
    • readCoordinate

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

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