Class GeometryUtils

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

public final class GeometryUtils extends Object
Utilities for GEOMETRY data type.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    Converter output target that determines minimal dimension system for a geometry.
    static final class 
    Converter output target that calculates an envelope.
    static class 
    Converter output target.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Code of 2D (XY) dimension system.
    static final int
    Code of M (XYM) dimension system.
    static final int
    Code of Z (XYZ) dimension system.
    static final int
    Code of ZM (XYZM) dimension system.
    static final int
    GEOMETRYCOLLECTION geometry type.
    static final int
    LINESTRING geometry type.
    static final int
    Number of M coordinate.
    static final int
    Maximum X coordinate index.
    static final int
    Maximum Y coordinate index.
    static final int
    Minimum X coordinate index.
    static final int
    Minimum Y coordinate index.
    static final int
    MULTILINESTRING geometry type.
    static final int
    MULTIPOINT geometry type.
    static final int
    MULTIPOLYGON geometry type.
    static final int
    POINT geometry type.
    static final int
    POLYGON geometry type.
    static final int
    Number of X coordinate.
    static final int
    Number of Y coordinate.
    static final int
    Number of Z coordinate.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) static double
    checkFinite(double d)
    Throw exception if param is not finite value (ie.
    static double[]
    getEnvelope(byte[] ewkb)
    Calculates an envelope of a specified geometry.
    static boolean
    intersects(double[] envelope1, double[] envelope2)
    Checks whether two envelopes intersect with each other.
    (package private) static double
    Normalizes all NaNs into single type on NaN and negative zero to positive zero.
    static double[]
    union(double[] envelope1, double[] envelope2)
    Returns union of two envelopes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • POINT

      public static final int POINT
      POINT geometry type.
      See Also:
    • LINE_STRING

      public static final int LINE_STRING
      LINESTRING geometry type.
      See Also:
    • POLYGON

      public static final int POLYGON
      POLYGON geometry type.
      See Also:
    • MULTI_POINT

      public static final int MULTI_POINT
      MULTIPOINT geometry type.
      See Also:
    • MULTI_LINE_STRING

      public static final int MULTI_LINE_STRING
      MULTILINESTRING geometry type.
      See Also:
    • MULTI_POLYGON

      public static final int MULTI_POLYGON
      MULTIPOLYGON geometry type.
      See Also:
    • GEOMETRY_COLLECTION

      public static final int GEOMETRY_COLLECTION
      GEOMETRYCOLLECTION geometry type.
      See Also:
    • X

      public static final int X
      Number of X coordinate.
      See Also:
    • Y

      public static final int Y
      Number of Y coordinate.
      See Also:
    • Z

      public static final int Z
      Number of Z coordinate.
      See Also:
    • M

      public static final int M
      Number of M coordinate.
      See Also:
    • DIMENSION_SYSTEM_XY

      public static final int DIMENSION_SYSTEM_XY
      Code of 2D (XY) dimension system.
      See Also:
    • DIMENSION_SYSTEM_XYZ

      public static final int DIMENSION_SYSTEM_XYZ
      Code of Z (XYZ) dimension system. Can also be used in bit masks to determine presence of dimension Z.
      See Also:
    • DIMENSION_SYSTEM_XYM

      public static final int DIMENSION_SYSTEM_XYM
      Code of M (XYM) dimension system. Can also be used in bit masks to determine presence of dimension M.
      See Also:
    • DIMENSION_SYSTEM_XYZM

      public static final int DIMENSION_SYSTEM_XYZM
      Code of ZM (XYZM) dimension system. Can be also combined from DIMENSION_SYSTEM_XYZ and DIMENSION_SYSTEM_XYM using bitwise OR.
      See Also:
    • MIN_X

      public static final int MIN_X
      Minimum X coordinate index.
      See Also:
    • MAX_X

      public static final int MAX_X
      Maximum X coordinate index.
      See Also:
    • MIN_Y

      public static final int MIN_Y
      Minimum Y coordinate index.
      See Also:
    • MAX_Y

      public static final int MAX_Y
      Maximum Y coordinate index.
      See Also:
  • Constructor Details

    • GeometryUtils

      private GeometryUtils()
  • Method Details

    • getEnvelope

      public static double[] getEnvelope(byte[] ewkb)
      Calculates an envelope of a specified geometry.
      Parameters:
      ewkb - EWKB of a geometry
      Returns:
      envelope, or null
    • intersects

      public static boolean intersects(double[] envelope1, double[] envelope2)
      Checks whether two envelopes intersect with each other.
      Parameters:
      envelope1 - first envelope, or null
      envelope2 - second envelope, or null
      Returns:
      whether the specified envelopes intersects
    • union

      public static double[] union(double[] envelope1, double[] envelope2)
      Returns union of two envelopes. This method does not modify the specified envelopes, but may return one of them as a result.
      Parameters:
      envelope1 - first envelope, or null
      envelope2 - second envelope, or null
      Returns:
      union of two envelopes
    • toCanonicalDouble

      static double toCanonicalDouble(double d)
      Normalizes all NaNs into single type on NaN and negative zero to positive zero.
      Parameters:
      d - double value
      Returns:
      normalized value
    • checkFinite

      static double checkFinite(double d)
      Throw exception if param is not finite value (ie. NaN/inf/etc)
      Parameters:
      d - a double value
      Returns:
      the same double value