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[]envelopeThe envelope of the value.private java.lang.ObjectgeometryThe value.private intsridSpatial reference system identifier.private inttypeAndDimensionSystemGeometry 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 privateValueGeometry(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 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(java.lang.String s)Get or create a geometry value for the given geometry.intgetDimensionSystem()Return a minimal dimension system that can be used for this geometry.double[]getEnvelopeNoCopy()Return an envelope of this geometry.ValuegetEnvelopeUnion(ValueGeometry r)Get the union.static ValueGeometrygetFromEWKB(byte[] bytes)Get or create a geometry value for the given EWKB value.static ValueGeometrygetFromGeometry(java.lang.Object o)Get or create a geometry value for the given geometry.org.locationtech.jts.geom.GeometrygetGeometry()Get a copy of geometry object.intgetGeometryType()Returns geometry type.intgetMemory()Get the memory used by this object.java.lang.StringBuildergetSQL(java.lang.StringBuilder builder, int sqlFlags)Appends the SQL statement of this object to the specified builder.intgetSRID()Return a spatial reference system identifier.java.lang.StringgetString()Get the value as a string.TypeInfogetType()Returns the data type.intgetTypeAndDimensionSystem()Returns geometry type and dimension system in OGC geometry code format (type + dimensionSystem * 1000).intgetValueType()Get the value type.booleanintersectsBoundingBox(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:ValueGet the value type.- Specified by:
getValueTypein classValue- Returns:
- the value type
-
getSQL
public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder, int sqlFlags)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
public java.lang.String 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
-
-