Setting up a PostGIS table¶
The extension will generally set up the table automatically for you,
and also running the
initdb command will have the same effect. This
section just describes what’s going on for those who want to know more.
To be able to store geometries and perform spatial operations, PostGIS
needs to work with geometry fields. Geometry fields should always be
added via the
CREATE TABLE package_extent( package_id text PRIMARY KEY ); ALTER TABLE package_extent OWNER TO ckan_default; SELECT AddGeometryColumn('package_extent','the_geom', 4326, 'GEOMETRY', 2);
This will add a geometry column in the
package_extent table called
the_geom, with the spatial reference system EPSG:4326. The stored
geometries will be polygons, with 2 dimensions (The CKAN table uses the
GEOMETRY type to support multiple geometry types).
Have a look a the table definition, and see how PostGIS has created some constraints to ensure that the geometries follow the parameters defined in the geometry column creation:
# \d package_extent Table "public.package_extent" Column | Type | Modifiers ------------+----------+----------- package_id | text | not null the_geom | geometry | Indexes: "package_extent_pkey" PRIMARY KEY, btree (package_id) Check constraints: "enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2) "enforce_srid_the_geom" CHECK (st_srid(the_geom) = 4326)