Package org.h2.value

Class ValueGeometry

  • All Implemented Interfaces:
    HasSQL, Typed

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

      • 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 java.lang.Object geometry
        The value. Converted from WKB only on request as conversion from/to WKB cost a significant amount of CPU cycles.
    • Constructor Detail

      • ValueGeometry

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

      • getFromGeometry

        public static ValueGeometry getFromGeometry​(java.lang.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​(java.lang.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 java.lang.StringBuilder getSQL​(java.lang.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 java.lang.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