44 lines
1.6 KiB
ReStructuredText
44 lines
1.6 KiB
ReStructuredText
==========================
|
|
Setting up a PostGIS table
|
|
==========================
|
|
|
|
.. note:: 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 ``AddGeometryColumn`` function::
|
|
|
|
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)
|
|
|
|
.. _PostGIS: http://postgis.org
|