ST_GeomFromWKB
Определение
ST_GeomFromWKB получает известное двоичное (WKB) представление и идентификатор (ID) пространственной привязки, и возвращает объект ST_Geometry.
Синтаксис
Oracle
sde.st_geomfromwkb (wkb blob, srid integer)
PostgreSQL
sde.st_geomfromwkb (wkb, srid integer) sde.st_geomfromwkb (esri_shape bytea, srid integer)
Тип возврата
ST_Geometry
Пример
В следующем примере строки результата были переформатированы для удобства чтения. Пробелы в ваших результатах будут варьироваться в зависимости от вашего текущего отображения. Следующий код демонстрирует, как может быть использована функция ST_GeomFromWKB для создания и добавления линии из линейного представления WKB. Следующий пример добавляет запись в таблицу sample_geometries с идентификатором (ID) и геометрию в систему пространственной привязки 1 в представлении WKB.
Oracle
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb blob);
INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES (
1901,
sde.st_geomfromtext ('point (1 2)', 0)
);
INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES (
1902,
sde.st_geomfromtext ('linestring (33 2, 34 3, 35 6)', 0)
);
INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES (
1903,
sde.st_geomfromtext ('polygon ((3 3, 4 6, 5 3, 3 3))', 0)
);
UPDATE SAMPLE_GEOMETRIES
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1901;
UPDATE SAMPLE_GEOMETRIES
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1902;
UPDATE SAMPLE_GEOMETRIES
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1903;
SELECT id, sde.st_astext (sde.st_geomfromwkb (wkb, 0))
FROM SAMPLE_GEOMETRIES;
ID GEOMETRY
1901 POINT (1.00000000 2.00000000)
1902 LINESTRING (33.00000000 2.00000000, 34.00000000 3.00000000, 35.00000000 6.00000000)
1903 POLYGON ((3.00000000 3.00000000, 5.00000000 3.00000000, 4.00000000 6.00000000, 3.00000000 3.00000000))
PostgreSQL
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb bytea);
INSERT INTO sample_geometries (id, geometry) VALUES (
1901,
sde.st_geometry ('point (1 2)', 0)
);
INSERT INTO sample_geometries (id, geometry) VALUES (
1902,
sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 0)
);
INSERT INTO sample_geometries (id, geometry) VALUES (
1903,
sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 0)
);
UPDATE sample_geometries
SET wkb = sde.st_asshape (geometry)
WHERE id = 1901;
UPDATE sample_geometries
SET wkb = sde.st_asshape (geometry)
WHERE id = 1902;
UPDATE sample_geometries
SET wkb = sde.st_asshape (geometry)
WHERE id = 1903;
SELECT id, sde.st_astext (sde.st_geomfromshape (wkb, 0))
FROM sample_geometries;
id st_astext
1901 POINT (1 2)
1902 LINESTRING (33 2, 34 3, 35 6)
1903 POLYGON ((3 3, 5 3, 4 6, 3 3))
9/11/2013