Package org.h2.value

Class ValueGeometry

All Implemented Interfaces:
HasSQL, Typed

public final class ValueGeometry extends ValueBytesBase
Implementation of the GEOMETRY data type.
  • Field Details

    • UNKNOWN_ENVELOPE

      private static final double[] UNKNOWN_ENVELOPE
    • typeAndDimensionSystem

      private final int typeAndDimensionSystem
      Geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).
    • srid

      private final int srid
      Spatial reference system identifier.
    • envelope

      private double[] envelope
      The envelope of the value. Calculated only on request.
    • geometry

      private Object geometry
      The value. Converted from WKB only on request as conversion from/to WKB cost a significant amount of CPU cycles.
  • Constructor Details

    • ValueGeometry

      private ValueGeometry(byte[] bytes, double[] envelope)
      Create a new geometry object.
      Parameters:
      bytes - the EWKB bytes
      envelope - the envelope
  • Method Details

    • getFromGeometry

      public static ValueGeometry getFromGeometry(Object o)
      Get or create a geometry value for the given geometry.
      Parameters:
      o - the geometry object (of type org.locationtech.jts.geom.Geometry)
      Returns:
      the value
    • get

      public static ValueGeometry get(String s)
      Get or create a geometry value for the given geometry.
      Parameters:
      s - the WKT or EWKT representation of the geometry
      Returns:
      the value
    • get

      public static ValueGeometry get(byte[] bytes)
      Get or create a geometry value for the given internal EWKB representation.
      Parameters:
      bytes - the WKB representation of the geometry. May not be modified.
      Returns:
      the value
    • getFromEWKB

      public static ValueGeometry getFromEWKB(byte[] bytes)
      Get or create a geometry value for the given EWKB value.
      Parameters:
      bytes - the WKB representation of the geometry
      Returns:
      the value
    • fromEnvelope

      public static Value fromEnvelope(double[] envelope)
      Creates a geometry value for the given envelope.
      Parameters:
      envelope - envelope. May not be modified.
      Returns:
      the value
    • getGeometry

      public org.locationtech.jts.geom.Geometry getGeometry()
      Get a copy of geometry object. Geometry object is mutable. The returned object is therefore copied before returning.
      Returns:
      a copy of the geometry object
    • getTypeAndDimensionSystem

      public int getTypeAndDimensionSystem()
      Returns geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).
      Returns:
      geometry type and dimension system
    • getGeometryType

      public int getGeometryType()
      Returns geometry type.
      Returns:
      geometry type and dimension system
    • getDimensionSystem

      public int getDimensionSystem()
      Return a minimal dimension system that can be used for this geometry.
      Returns:
      dimension system
    • getSRID

      public int getSRID()
      Return a spatial reference system identifier.
      Returns:
      spatial reference system identifier
    • getEnvelopeNoCopy

      public double[] getEnvelopeNoCopy()
      Return an envelope of this geometry. Do not modify the returned value.
      Returns:
      envelope of this geometry
    • intersectsBoundingBox

      public boolean intersectsBoundingBox(ValueGeometry r)
      Test if this geometry envelope intersects with the other geometry envelope.
      Parameters:
      r - the other geometry
      Returns:
      true if the two overlap
    • getEnvelopeUnion

      public Value getEnvelopeUnion(ValueGeometry r)
      Get the union.
      Parameters:
      r - the other geometry
      Returns:
      the union of this geometry envelope and another geometry envelope
    • getType

      public TypeInfo getType()
      Description copied from interface: Typed
      Returns the data type.
      Specified by:
      getType in interface Typed
      Specified by:
      getType in class Value
      Returns:
      the data type
    • getValueType

      public int getValueType()
      Description copied from class: Value
      Get the value type.
      Specified by:
      getValueType in class Value
      Returns:
      the value type
    • getSQL

      public StringBuilder getSQL(StringBuilder builder, int sqlFlags)
      Description copied from interface: HasSQL
      Appends the SQL statement of this object to the specified builder.
      Specified by:
      getSQL in interface HasSQL
      Overrides:
      getSQL in class ValueBytesBase
      Parameters:
      builder - string builder
      sqlFlags - formatting flags
      Returns:
      the specified string builder
    • getString

      public String getString()
      Description copied from class: Value
      Get the value as a string.
      Specified by:
      getString in class Value
      Returns:
      the string
    • getMemory

      public int getMemory()
      Description copied from class: Value
      Get the memory used by this object.
      Overrides:
      getMemory in class ValueBytesBase
      Returns:
      the memory used in bytes