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 ObjectThe value.private final intSpatial reference system identifier.private final intGeometry 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, valueFields 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_IGNORECASEFields 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
ConstructorsModifierConstructorDescriptionprivateValueGeometry(byte[] bytes, double[] envelope) Create a new geometry object. -
Method Summary
Modifier and TypeMethodDescriptionstatic ValuefromEnvelope(double[] envelope) Creates a geometry value for the given envelope.static ValueGeometryget(byte[] bytes) Get or create a geometry value for the given internal EWKB representation.static ValueGeometryGet or create a geometry value for the given geometry.intReturn a minimal dimension system that can be used for this geometry.double[]Return an envelope of this geometry.Get the union.static ValueGeometrygetFromEWKB(byte[] bytes) Get or create a geometry value for the given EWKB value.static ValueGeometryGet or create a geometry value for the given geometry.org.locationtech.jts.geom.GeometryGet a copy of geometry object.intReturns geometry type.intGet the memory used by this object.getSQL(StringBuilder builder, int sqlFlags) Appends the SQL statement of this object to the specified builder.intgetSRID()Return a spatial reference system identifier.Get the value as a string.getType()Returns the data type.intReturns geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).intGet the value type.booleanTest if this geometry envelope intersects with the other geometry envelope.Methods inherited from class org.h2.value.ValueBytesBase
compareTypeSafe, equals, getBytes, getBytesNoCopy, hashCodeMethods 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, toStringMethods inherited from class org.h2.value.VersionedValue
getCommittedValue, getCurrentValue, getOperationId, isCommittedMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods 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:TypedReturns the data type. -
getValueType
public int getValueType()Description copied from class:ValueGet the value type.- Specified by:
getValueTypein classValue- Returns:
- the value type
-
getSQL
Description copied from interface:HasSQLAppends the SQL statement of this object to the specified builder.- Specified by:
getSQLin interfaceHasSQL- Overrides:
getSQLin classValueBytesBase- Parameters:
builder- string buildersqlFlags- formatting flags- Returns:
- the specified string builder
-
getString
Description copied from class:ValueGet the value as a string. -
getMemory
public int getMemory()Description copied from class:ValueGet the memory used by this object.- Overrides:
getMemoryin classValueBytesBase- Returns:
- the memory used in bytes
-