ST_PointFromWKB
Définition
ST_PointFromWKB accepte une représentation binaire connue (WKB) et un ID de référence spatiale pour renvoyer un objet ST_Point.
Syntaxe
Oracle
sde.st_pointfromwkb (wkb blob, srid integer)
PostgreSQL
sde.st_pointfromwkb (wkb bytea, srid integer)
Type de retour
ST_Point
Exemple
Cet exemple illustre comment ST_PointFromWKB peut permettre de créer un point à partir de sa représentation binaire connue. Les géométries sont des points dans le système de référence spatiale 1. Dans cet exemple, les points sont stockés dans la colonne geometry de la table sample_points, puis la colonne wkb est mise à jour avec leurs représentations binaires connues (à l'aide de la fonction ST_AsBinary). Enfin, la fonction ST_PointFromWKB permet de renvoyer les points de la colonne WKB. La table sample_points comporte une colonne geometry, dans laquelle les points sont stockés, et une colonne wkb dans laquelle les représentations binaires connues des points sont stockées.
Oracle
CREATE TABLE sample_points (id integer, geometry sde.st_point, wkb blob);
INSERT INTO SAMPLE_POINTS (id, geometry) VALUES (
10,
sde.st_point ('point (44 14)', 0)
);
INSERT INTO SAMPLE_POINTS (id, geometry) VALUES (
11,
sde.st_point ('point (24 13)', 0)
);
UPDATE SAMPLE_POINTS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;
UPDATE SAMPLE_POINTS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 11;
PostgreSQL
CREATE TABLE sample_points (id integer, geometry sde.st_point, wkb bytea);
INSERT INTO sample_points (id, geometry) VALUES (
10,
sde.st_point ('point (44 14)', 0)
);
INSERT INTO sample_points (id, geometry) VALUES (
11,
sde.st_point ('point (24 13)', 0)
);
UPDATE sample_points
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;
UPDATE sample_points
SET wkb = sde.st_asbinary (geometry)
WHERE id = 11;
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_pointfromwkb(wkb, 0)) POINTS
FROM SAMPLE_POINTS;
ID POINTS
10 POINT (44.00000000 14.00000000)
11 POINT (24.00000000 13.00000000)
PostgreSQL
SELECT id, sde.st_astext (sde.st_pointfromwkb(wkb, 0))
AS points
FROM sample_points;
id points
10 POINT (44 14)
11 POINT (24 13)