public class WKBReader extends Object
Geometry
from a byte stream in Well-Known Binary format.
Supports use of an InStream
, which allows easy use
with arbitrary byte stream sources.
This class reads the format describe in WKBWriter
.
It also partially handles
the Extended WKB format used by PostGIS,
by parsing and storing SRID values.
The reader repairs structurally-invalid input
(specifically, LineStrings and LinearRings which contain
too few points have vertices added,
and non-closed rings are closed).
This class is designed to support reuse of a single instance to read multiple geometries. This class is not thread-safe; each thread should create its own instance.
As of version 1.15, the reader can read geometries following OGC 06-103r4 speification used by Spatialite/Geopackage.
The difference between PostGIS EWKB format and the new OGC specification is that Z and M coordinates are detected with a bit mask on the higher byte in the former case (0x80 for Z and 0x40 for M) while new OGC specification use specif int ranges for 2D gemetries, Z geometries (2D code+1000), M geometries (2D code+2000) and ZM geometries (2D code+3000).
Note that the WKBWriter
is not changed and still write PostGIS WKB
geometries
for a formal format specification
Constructor and Description |
---|
WKBReader() |
WKBReader(GeometryFactory geometryFactory) |
Modifier and Type | Method and Description |
---|---|
static byte[] |
hexToBytes(String hex)
Converts a hexadecimal string to a byte array.
|
Geometry |
read(byte[] bytes)
Reads a single
Geometry in WKB format from a byte array. |
Geometry |
read(InStream is)
|
public WKBReader()
public WKBReader(GeometryFactory geometryFactory)
public static byte[] hexToBytes(String hex)
hex
- a string containing hex digitspublic Geometry read(byte[] bytes) throws ParseException
Geometry
in WKB format from a byte array.bytes
- the byte array to read fromParseException
- if the WKB is ill-formedpublic Geometry read(InStream is) throws IOException, ParseException
is
- the stream to read fromIOException
- if the underlying stream creates an errorParseException
- if the WKB is ill-formedCopyright © 2020. All rights reserved.