ST_PolyFromWKB
Définition
ST_PolyFromWKB accepte une représentation binaire connue (WKB) et un ID de référence spatiale, puis renvoie un objet ST_Polygon.
Syntaxe
Oracle
sde.st_polyfromwkb (wkb blob, srid integer)
PostgreSQL
sde.st_polyfromwkb (wkb bytea, srid integer)
Type de retour
ST_Polygon
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. Cet exemple illustre la façon dont ST_PolyFromWKB permet de créer un polygone à partir de sa représentation binaire connue. La géométrie est un polygone dans le système de référence spatiale 1. Dans cet exemple, le polygone est stocké avec l'ID = 1115 dans la colonne geometry de la table sample_polys, puis la colonne wkb est mise à jour avec sa représentation WKB (à l'aide de la fonction ST_AsBinary). Enfin, la fonction ST_PolyFromWKB permet de renvoyer le multi-polygone de la colonne WKB. Les coordonnées x et y de cette géométrie sont (50, 20) (50, 40) (70, 30). La table sample_polys comporte une colonne geometry, dans laquelle le polygone est stocké, et une colonne wkb dans laquelle la représentation WKB du polygone est stockée.
Oracle
CREATE TABLE sample_polys (id integer, geometry sde.st_geometry, wkb blob);
INSERT INTO SAMPLE_POLYS (id, geometry) VALUES (
1115,
sde.st_polyfromtext ('polygon ((10.01 20.03, 10.52 40.11, 30.29 41.56,
31.78 10.74, 10.01 20.03))', 0)
);
UPDATE SAMPLE_POLYS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1115;
PostgreSQL
CREATE TABLE sample_polys (id integer, geometry sde.st_geometry, wkb bytea);
INSERT INTO sample_polys (id, geometry) VALUES (
1115,
sde.st_polygon ('polygon ((10.01 20.03, 10.52 40.11, 30.29 41.56,
31.78 10.74, 10.01 20.03))', 0)
);
UPDATE sample_polys
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1115;
Dans l'instruction SELECT suivante, la fonction ST_PointFromWKB permet de récupérer les points de la colonne WKB.
Oracle
SELECT id, sde.st_astext (sde.st_polyfromwkb (wkb, 0)) POLYS
FROM SAMPLE_POLYS;
ID POLYS
1115 POLYGON (10.01000000 20.03000000, 31.78000000 10.74000000, 30.29000000 41.56000000, 10.52000000 40.11000000, 10.01000000 20.03000000)
PostgreSQL
SELECT id, sde.st_astext (sde.st_polyfromwkb (wkb, 0))
AS POLYS
FROM sample_polys;
id polys
1115 POLYGON (10.01000000 20.03000000, 31.78000000 10.74000000, 30.29000000 41.56000000, 10.52000000 40.11000000, 10.01000000 20.03000000)