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)) 

2/5/2013