ST_GeomFromWKB
Definition
ST_GeomFromWKB takes a well-known binary (WKB) representation and a spatial reference ID to return an ST_Geometry object.
Syntax
Oracle
sde.st_geomfromwkb (wkb blob, srid integer)
PostgreSQL
sde.st_geomfromwkb (wkb, srid integer) sde.st_geomfromwkb (esri_shape bytea, srid integer)
Return type
ST_Geometry
Example
In the following example, the lines of results have been reformatted for readability. The spacing in your results will vary according to your online display. The following code illustrates how the ST_GeomFromWKB function can be used to create and insert a line from a WKB line representation. The following example inserts a record into the sample_geometries table with an ID and a geometry in spatial reference system 1 in a WKB representation.
Oracle
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb blob); INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES ( 1901, sde.st_geomfromtext ('point (1 2)', 0) ); INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES ( 1902, sde.st_geomfromtext ('linestring (33 2, 34 3, 35 6)', 0) ); INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES ( 1903, sde.st_geomfromtext ('polygon ((3 3, 4 6, 5 3, 3 3))', 0) ); UPDATE SAMPLE_GEOMETRIES SET wkb = sde.st_asbinary (geometry) WHERE id = 1901; UPDATE SAMPLE_GEOMETRIES SET wkb = sde.st_asbinary (geometry) WHERE id = 1902; UPDATE SAMPLE_GEOMETRIES SET wkb = sde.st_asbinary (geometry) WHERE id = 1903; SELECT id, sde.st_astext (sde.st_geomfromwkb (wkb, 0)) FROM SAMPLE_GEOMETRIES; ID GEOMETRY 1901 POINT (1.00000000 2.00000000) 1902 LINESTRING (33.00000000 2.00000000, 34.00000000 3.00000000, 35.00000000 6.00000000) 1903 POLYGON ((3.00000000 3.00000000, 5.00000000 3.00000000, 4.00000000 6.00000000, 3.00000000 3.00000000))
PostgreSQL
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb bytea); INSERT INTO sample_geometries (id, geometry) VALUES ( 1901, sde.st_geometry ('point (1 2)', 0) ); INSERT INTO sample_geometries (id, geometry) VALUES ( 1902, sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 0) ); INSERT INTO sample_geometries (id, geometry) VALUES ( 1903, sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 0) ); UPDATE sample_geometries SET wkb = sde.st_asshape (geometry) WHERE id = 1901; UPDATE sample_geometries SET wkb = sde.st_asshape (geometry) WHERE id = 1902; UPDATE sample_geometries SET wkb = sde.st_asshape (geometry) WHERE id = 1903; SELECT id, sde.st_astext (sde.st_geomfromshape (wkb, 0)) FROM sample_geometries; id st_astext 1901 POINT (1 2) 1902 LINESTRING (33 2, 34 3, 35 6) 1903 POLYGON ((3 3, 5 3, 4 6, 3 3))
11/18/2013