Package org.h2.value
Class ValueGeometry
- java.lang.Object
-
- org.h2.value.VersionedValue<Value>
-
- org.h2.value.Value
-
- org.h2.value.ValueBytesBase
-
- org.h2.value.ValueGeometry
-
public final class ValueGeometry extends ValueBytesBase
Implementation of the GEOMETRY data type.
-
-
Field Summary
Fields Modifier and Type Field Description private double[]
envelope
The envelope of the value.private java.lang.Object
geometry
The value.private int
srid
Spatial reference system identifier.private int
typeAndDimensionSystem
Geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).private static double[]
UNKNOWN_ENVELOPE
-
Fields inherited from class org.h2.value.ValueBytesBase
hash, value
-
Fields inherited from class org.h2.value.Value
ARRAY, ASSIGN_TO, BIGINT, BINARY, BLOB, BOOLEAN, CAST_TO, CHAR, CLOB, CONVERT_TO, DATE, DECFLOAT, DOUBLE, EMPTY_VALUES, ENUM, GEOMETRY, GROUP_BINARY_STRING, GROUP_BOOLEAN, GROUP_CHARACTER_STRING, GROUP_COLLECTION, GROUP_DATETIME, GROUP_INTERVAL_DT, GROUP_INTERVAL_YM, GROUP_NULL, GROUP_NUMERIC, GROUP_OTHER, GROUPS, INTEGER, INTERVAL_DAY, INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR, INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND, INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_MONTH, INTERVAL_SECOND, INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, JAVA_OBJECT, JSON, MAX_LONG_DECIMAL, MIN_LONG_DECIMAL, NULL, NUMERIC, REAL, ROW, SMALLINT, TIME, TIME_TZ, TIMESTAMP, TIMESTAMP_TZ, TINYINT, TYPE_COUNT, UNKNOWN, UUID, VARBINARY, VARCHAR, VARCHAR_IGNORECASE
-
Fields inherited from interface org.h2.util.HasSQL
ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS
-
-
Constructor Summary
Constructors Modifier Constructor Description private
ValueGeometry(byte[] bytes, double[] envelope)
Create a new geometry object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Value
fromEnvelope(double[] envelope)
Creates a geometry value for the given envelope.static ValueGeometry
get(byte[] bytes)
Get or create a geometry value for the given internal EWKB representation.static ValueGeometry
get(java.lang.String s)
Get or create a geometry value for the given geometry.int
getDimensionSystem()
Return a minimal dimension system that can be used for this geometry.double[]
getEnvelopeNoCopy()
Return an envelope of this geometry.Value
getEnvelopeUnion(ValueGeometry r)
Get the union.static ValueGeometry
getFromEWKB(byte[] bytes)
Get or create a geometry value for the given EWKB value.static ValueGeometry
getFromGeometry(java.lang.Object o)
Get or create a geometry value for the given geometry.org.locationtech.jts.geom.Geometry
getGeometry()
Get a copy of geometry object.int
getGeometryType()
Returns geometry type.int
getMemory()
Get the memory used by this object.java.lang.StringBuilder
getSQL(java.lang.StringBuilder builder, int sqlFlags)
Appends the SQL statement of this object to the specified builder.int
getSRID()
Return a spatial reference system identifier.java.lang.String
getString()
Get the value as a string.TypeInfo
getType()
Returns the data type.int
getTypeAndDimensionSystem()
Returns geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).int
getValueType()
Get the value type.boolean
intersectsBoundingBox(ValueGeometry r)
Test if this geometry envelope intersects with the other geometry envelope.-
Methods inherited from class org.h2.value.ValueBytesBase
compareTypeSafe, equals, getBytes, getBytesNoCopy, hashCode
-
Methods inherited from class org.h2.value.Value
add, cache, castTo, charLength, clearCache, compareTo, compareWithNull, containsNull, convertForAssignTo, convertTo, convertTo, convertTo, convertTo, convertTo, convertToAnyArray, convertToAnyRow, convertToBigint, convertToBoolean, convertToChar, convertToDate, convertToDouble, convertToEnum, convertToGeometry, convertToInt, convertToInt, convertToJavaObject, convertToReal, convertToSmallint, convertToTinyint, convertToUuid, divide, getBigDecimal, getBoolean, getByte, getDataConversionError, getDataConversionError, getDouble, getFloat, getHigherOrder, getHigherOrderKnown, getInputStream, getInputStream, getInt, getLong, getReader, getReader, getShort, getSignum, getTypeName, getUnsupportedExceptionForOperation, getValueTooLongException, isFalse, isTrue, modulus, multiply, negate, octetLength, rangeCheck, subtract, toString
-
Methods inherited from class org.h2.value.VersionedValue
getCommittedValue, getCurrentValue, getOperationId, isCommitted
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.h2.util.HasSQL
getSQL, getTraceSQL
-
-
-
-
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.
-
-
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
-
getValueType
public int getValueType()
Description copied from class:Value
Get the value type.- Specified by:
getValueType
in classValue
- 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 interfaceHasSQL
- Overrides:
getSQL
in classValueBytesBase
- Parameters:
builder
- string buildersqlFlags
- formatting flags- Returns:
- the specified string builder
-
getString
public java.lang.String getString()
Description copied from class:Value
Get the value as a string.
-
getMemory
public int getMemory()
Description copied from class:Value
Get the memory used by this object.- Overrides:
getMemory
in classValueBytesBase
- Returns:
- the memory used in bytes
-
-