ST_GeomFromWKB

Définition

ST_GeomFromWKB accepte une représentation binaire connue (WKB) et un ID de référence spatiale pour renvoyer un objet ST_Geometry.

Syntaxe

Oracle

sde.st_geomfromwkb (wkb blob, srid integer)

PostgreSQL

sde.st_geomfromwkb (wkb, srid integer)
sde.st_geomfromwkb (esri_shape bytea, srid integer)

Type de retour

ST_Geometry

Exemple

Dans l'exemple suivant, les lignes de résultats ont été remises en forme pour améliorer leur lisibilité. L'espacement de vos résultats variera selon votre affichage en ligne. Le code suivant montre comment utiliser la fonction ST_GeomFromWKB pour créer et insérer une ligne à partir d'une représentation WKB de ligne. L'exemple suivant insère un enregistrement dans la table sample_geometries avec un ID et une géométrie dans le système de référence spatiale 1 dans une représentation WKB.

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

3/6/2012