ST_MPolyFromWKB

Определение

ST_MPointFromWKB принимает WKB-представление типа ST_MultiPolygon и идентификатор пространственной привязки и возвращает ST_MultiPolygon.

Синтаксис

Oracle

sde.st_mpolyfromwkb (wkb blob, srid integer)

PostgreSQL

sde.st_mpolyfromwkb (wkb bytea, srid integer)

Тип возврата

ST_MultiPolygon

Пример

В следующем примере строки результаты были отформатированы для улучшения восприятия. Отступы в результатах будут зависеть от отображения на экране. В этом примере показано, как можно использовать функцию ST_MPolyFromWKB для создания мультиполигона на основе его WKB-представления. Геометрия – мультиполигон в системе пространственной привязки 1. В этом примере мультиполигон сохраняется с идентификатором ID = 10 в столбце geometry таблицы sample_mpolys, затем столбец wkb обновляется с использованием WKB-представления (с помощью функции ST_AsBinary). Наконец, функция ST_MPolyFromWKB используется для возврата мультиполигона из столбца wkb. Координаты x и y этой геометрии — v Polygon 1: (1, 72) (4, 79) (5, 76) (1, 72); v Polygon 2: (10, 20) (10, 40) (30, 41)(10, 20); v Polygon 3: (9, 43) (7, 44) (6, 47) (9, 43). В таблице sample_mpolys есть столбец geometry, в которой сохраняется мультиполигон, а также столбец wkb, в котором хранится WKB-представление мультиполигона.

Oracle

CREATE TABLE sample_mpolys (id integer, geometry sde.st_geometry, wkb blob);

INSERT INTO SAMPLE_MPOLYS VALUES (
10,
sde.st_multipolygon ('multipolygon (((1 72, 4 79, 5 76, 1 72), (10 20, 10 40, 30 41, 10 20), (9 43, 7 44, 6 47, 9 43)))', 0)
);

UPDATE SAMPLE_MPOLYS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;

PostgreSQL

CREATE TABLE sample_mpolys (id integer, geometry sde.st_geometry, wkb bytea);

INSERT INTO sample_mpolys VALUES (
10,
sde.st_multipolygon ('multipolygon (((1 72, 4 79, 5 76, 1 72), (10 20, 10 40, 30 41, 10 20), (9 43, 7 44, 6 47, 9 43)))', 0)
);

UPDATE sample_mpolys
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;

В следующем выражении SELECT функция ST_MPolyFromWKB используется для получения мультиполигона из столбца wkb.

Oracle

SELECT id, sde.st_astext (sde.st_mpolyfromwkb (wkb,0)) MULTIPOLYGON
FROM SAMPLE_MPOLYS
WHERE id = 10;

ID   MULTIPOLYGON

10   MULTIPOLYGON (((10.00000000 20.00000000, 30.00000000 41.00000000, 10.00000000 40.00000000, 10.00000000 20.00000000)), (1.00000000 72.00000000, 5.00000000 76.00000000, 4.00000000 79.0000000, 1.00000000 72,00000000)), (9.00000000 43.00000000, 6.00000000 47.00000000, 7.00000000 44.00000000, 9.00000000 43.00000000 )))

PostgreSQL

SELECT id, sde.st_astext (sde.st_mpolyfromwkb (wkb,0)) 
AS MULTIPOLYGON
FROM sample_mpolys
WHERE id = 10;

id   multipolygon

10   MULTIPOLYGON (((10 20, 30 41, 10 40, 10 20)),
 (1. 72, 5 76, 4 79, 1 72)), (9 43, 6 47, 7 44, 9 43 )))
9/11/2013