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
Implementation of the GEOMETRY data type.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double[]
The envelope of the value.private Object
The value.private final int
Spatial reference system identifier.private final int
Geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).private static final double[]
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
ConstructorsModifierConstructorDescriptionprivate
ValueGeometry
(byte[] bytes, double[] envelope) Create a new geometry object. -
Method Summary
Modifier and TypeMethodDescriptionstatic 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 or create a geometry value for the given geometry.int
Return a minimal dimension system that can be used for this geometry.double[]
Return an envelope of this geometry.Get the union.static ValueGeometry
getFromEWKB
(byte[] bytes) Get or create a geometry value for the given EWKB value.static ValueGeometry
Get or create a geometry value for the given geometry.org.locationtech.jts.geom.Geometry
Get a copy of geometry object.int
Returns geometry type.int
Get the memory used by this object.getSQL
(StringBuilder builder, int sqlFlags) Appends the SQL statement of this object to the specified builder.int
getSRID()
Return a spatial reference system identifier.Get the value as a string.getType()
Returns the data type.int
Returns geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).int
Get the value type.boolean
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 Details
-
UNKNOWN_ENVELOPE
private static final double[] UNKNOWN_ENVELOPE -
typeAndDimensionSystem
private final int typeAndDimensionSystemGeometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000). -
srid
private final int sridSpatial reference system identifier. -
envelope
private double[] envelopeThe envelope of the value. Calculated only on request. -
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 bytesenvelope
- the envelope
-
-
Method Details
-
getFromGeometry
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
Get or create a geometry value for the given geometry.- Parameters:
s
- the WKT or EWKT representation of the geometry- Returns:
- the value
-
get
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
Get or create a geometry value for the given EWKB value.- Parameters:
bytes
- the WKB representation of the geometry- Returns:
- the value
-
fromEnvelope
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
Test if this geometry envelope intersects with the other geometry envelope.- Parameters:
r
- the other geometry- Returns:
- true if the two overlap
-
getEnvelopeUnion
Get the union.- Parameters:
r
- the other geometry- Returns:
- the union of this geometry envelope and another geometry envelope
-
getType
Description copied from interface:Typed
Returns the data type. -
getValueType
public int getValueType()Description copied from class:Value
Get the value type.- Specified by:
getValueType
in classValue
- Returns:
- the value type
-
getSQL
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
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
-