ST_PolyFromWKB

Definición

ST_PolyFromWKB toma una representación binaria conocida (WKB) y una Id. de referencia espacial y devuelve un ST_Polygon.

Sintaxis

Oracle

sde.st_polyfromwkb (wkb blob, srid integer)

PostgreSQL

sde.st_polyfromwkb (wkb bytea, srid integer)

SQLite

st_polyfromwkb (wkb blob, srid int32)

Tipo de devolución

ST_Polygon

Ejemplo

En este ejemplo se muestra cómo ST_PolyFromWKB se puede utilizar para crear un polígono desde su representación binaria conocida. La geometría es un polígono en el sistema de referencia espacial 4326. En este ejemplo, el polígono se almacena con Id. = 1115 en la columna de geometría de la tabla sample_polys, y después la columna wkb se actualiza con su representación WKB (utilizando la función ST_AsBinary). Por último, la función ST_PointFromWKB se utiliza para devolver el multipolígono de la columna WKB. La tabla sample_polys tiene una columna de geometría, en donde el polígono se almacena, y una columna wkb, en donde la representación WKB del polígono se almacena.

En la declaración SELECT, la función ST_PointFromWKB se usa para recuperar los puntos de la columna WKB.

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))', 4326)
);

UPDATE SAMPLE_POLYS
 SET wkb = sde.st_asbinary (geometry)
 WHERE id = 1115;
SELECT id, sde.st_astext (sde.st_polyfromwkb (wkb, 4326)) 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

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))', 4326)
);

UPDATE sample_polys
 SET wkb = sde.st_asbinary (geometry)
 WHERE id = 1115;
SELECT id, sde.st_astext (sde.st_polyfromwkb (wkb, 4326)) 
 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)

SQLite

CREATE TABLE sample_polys(
 id integer,
 wkb blob
);

SELECT AddGeometryColumn(
 NULL,
 'sample_polys',
 'geometry',
 4326,
 'polygon',
 'xy',
 'null'
);

INSERT INTO sample_polys (id, geometry) VALUES (
 1115,
 st_polyfromtext ('polygon ((10.01 20.03, 10.52 40.11, 30.29 41.56, 31.78 10.74, 10.01 20.03))', 4326)
);

UPDATE sample_polys
 SET wkb = st_asbinary (geometry)
 WHERE id = 1115;
SELECT id, st_astext (st_polyfromwkb (wkb, 4326)) 
 AS "polygons"
 FROM sample_polys;

id    polygons

1115    POLYGON (10.01000000 20.03000000, 31.78000000 10.74000000, 30.29000000 41.56000000, 10.52000000 40.11000000, 10.01000000 20.03000000)

Temas relacionados

5/10/2014