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

PostgreSQL

Oracle

sde.st_pointfromwkb (wkb blob, srid integer)

PostgreSQL

sde.st_pointfromwkb (wkb bytea, srid integer)

SQLite

st_pointfromwkb (wkb blob, srid int32)

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

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)

Thèmes connexes

5/10/2014