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
डिफ़ॉल्ट रूप से करेंगे?