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)
sde.st_pointfromwkb (wkb blob)
Si aucun identifiant de référence spatiale n’est spécifié, la référence spatiale par défaut est 4326.
PostgreSQL
sde.st_pointfromwkb (wkb bytea, srid integer)
SQLite
st_pointfromwkb (wkb blob, srid int32)
st_pointfromwkb (wkb blob)
Si aucun identifiant de référence spatiale n’est spécifié, la référence spatiale par défaut est 4326.
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 4326. Dans cet exemple, les points sont stockés dans la colonne géométrie de la table sample_points, et la colonne wkb est mise à jour avec leur représentation binaire connue (avec la fonction ST_AsBinary). Enfin, la fonction ST_PointFromWKB permet de renvoyer les points depuis 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.
Dans l'instruction SELECT, la fonction ST_PointFromWKB permet de récupérer les points de la colonne WKB.
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)', 4326)
);
INSERT INTO SAMPLE_POINTS (id, geometry) VALUES (
11,
sde.st_point ('point (24 13)', 4326)
);
UPDATE SAMPLE_POINTS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;
UPDATE SAMPLE_POINTS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 11;
SELECT id, sde.st_astext (sde.st_pointfromwkb(wkb, 4326)) POINTS
FROM SAMPLE_POINTS;
ID POINTS
10 POINT (44.00000000 14.00000000)
11 POINT (24.00000000 13.00000000)
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)', 4326)
);
INSERT INTO sample_points (id, geometry) VALUES (
11,
sde.st_point ('point (24 13)', 4326)
);
UPDATE sample_points
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;
UPDATE sample_points
SET wkb = sde.st_asbinary (geometry)
WHERE id = 11;
SELECT id, sde.st_astext (sde.st_pointfromwkb(wkb, 4326))
AS points
FROM sample_points;
id points
10 POINT (44 14)
11 POINT (24 13)
SQLite
CREATE TABLE sample_pts (
id integer,
wkb blob
);
SELECT AddGeometryColumn(
NULL,
'sample_pts',
'geometry',
4326,
'point',
'xy',
'null'
);
INSERT INTO sample_pts (id, geometry) VALUES (
10,
st_point ('point (44 14)', 4326)
);
INSERT INTO sample_pts (id, geometry) VALUES (
11,
st_point ('point (24 13)', 4326)
);
UPDATE sample_pts
SET wkb = st_asbinary (geometry)
WHERE id = 10;
UPDATE sample_pts
SET wkb = st_asbinary (geometry)
WHERE id = 11;
SELECT id, st_astext (st_pointfromwkb(wkb, 4326))
AS "points"
FROM sample_pts;
id points
10 POINT (44.00000000 14.00000000)
11 POINT (24.00000000 13.00000000)