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)

3/6/2012