在DB2中它也是一個Polygon。它看起來像你存儲網格,所以快速檢查可能是,如果ST_ENVELOPE(幾何)==幾何那麼你有一個方形
此代碼是從
DB2's documentation
SET CURRENT PATH = CURRENT PATH, db2gse;
CREATE TABLE sample_geoms (id INTEGER, geometry ST_Geometry);
INSERT INTO sample_geoms VALUES
(1, ST_Geometry(ST_Point('point EMPTY',0)));
INSERT INTO sample_geoms VALUES
(2, ST_Geometry(ST_Point('point zm (10 10 16 30)' ,0)));
INSERT INTO sample_geoms VALUES
(3, ST_Geometry(ST_Multipoint('multipoint m (10 10 5, 50 10 6,
10 30 8)' ,0)));
INSERT INTO sample_geoms VALUES
(4, ST_Geometry(ST_Linestring('linestring (10 10, 20 10)',0)));
INSERT INTO sample_geoms VALUES
(5, ST_Geometry(ST_Polygon('polygon((40 120, 90 120, 90 150,
40 150, 40 120))',0)));
SELECT id, CAST(ST_AsText(ST_Envelope(geometry)) as VARCHAR(160)) Envelope
FROM sample_geoms;
結果:
ID ENVELOPE
----------- ---------------------------------------------------------------
1 -
2 POLYGON ((9 9, 11 9, 11 11, 9 11, 9 9))
3 POLYGON ((10 10, 50 10, 50 30, 10 30, 10 10))
4 POLYGON ((10 9, 20 9, 20 11, 10 11, 10 9))
5 POLYGON ((40 120, 90 120, 90 150, 40 150, 40 120))
請參閱ID = 5?最後一個POLYGON == ST_ENVELOPE(幾何)
但ST_envolope是一個函數,而不是一個類型的,據我可以看到? – 2009-08-17 22:01:25
對不起,我剛剛刪除了許多令人費解的廢話。這些點在Postgis中存儲爲一系列的float4,對DB2不太確定,但它必須大致相同,或者可能是db2/Oracle的「數字」類型之一。我猜測所有的矩形都只是作爲一些基本的浮點類型存儲的座標,通過智能索引爲常見的空間查詢啓用地理功能。 – unmounted 2009-08-17 22:16:56
Troels是正確的。 ST_ENVELOPE是一個返回ST_POLYGON的函數; ST_ENVELOPE不是一種類型。 「浮點」優化特定於PostGIS。 – 2009-08-28 16:04:05