ในเอกสาร PostGIS มันบอกว่ามีสองขั้นตอนในการสร้างตารางเชิงพื้นที่ด้วย SQL:
- สร้างตารางที่ไม่ใช่เชิงพื้นที่ปกติ
- เพิ่มคอลัมน์เชิงพื้นที่ลงในตารางโดยใช้ฟังก์ชัน OpenGIS "AddGeometryColumn"
ถ้าฉันทำตามตัวอย่างฉันจะสร้างตารางที่เรียกว่าterrain_points
:
CREATE TABLE terrain_points (
ogc_fid serial NOT NULL,
elevation double precision,
);
SELECT AddGeometryColumn('terrain_points', 'wkb_geometry', 3725, 'POINT', 3 );
หรือถ้าฉันดูตารางที่มีอยู่ในpgAdmin IIIดูเหมือนว่าฉันสามารถสร้างตารางเดียวกันดังนี้:
CREATE TABLE terrain_points
(
ogc_fid serial NOT NULL,
wkb_geometry geometry,
elevation double precision,
CONSTRAINT terrain_points_pk PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_dims_wkb_geometry CHECK (st_ndims(wkb_geometry) = 3),
CONSTRAINT enforce_geotype_wkb_geometry CHECK (geometrytype(wkb_geometry) = 'POINT'::text OR wkb_geometry IS NULL),
CONSTRAINT enforce_srid_wkb_geometry CHECK (st_srid(wkb_geometry) = 3725)
)
WITH (
OIDS=FALSE
);
ALTER TABLE terrain_points OWNER TO postgres;
-- Index: terrain_points_geom_idx
-- DROP INDEX terrain_points_geom_idx;
CREATE INDEX terrain_points_geom_idx
ON terrain_points
USING gist
(wkb_geometry);
ทั้งสองวิธีนี้ให้ผลลัพธ์เหมือนกันหรือไม่? รุ่นนี้ยึดตามpgAdmin IIIอย่างละเอียดมากขึ้นและทำสิ่งต่าง ๆ ที่AddGeometryColumn
ควรทำตามค่าเริ่มต้นหรือไม่