[postgis-commits] svn - r3313 - trunk/doc
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Fri Nov 21 06:15:37 PST 2008
Author: robe
Date: 2008-11-21 06:15:35 -0800 (Fri, 21 Nov 2008)
New Revision: 3313
Modified:
trunk/doc/using_postgis.xml
Log:
GBT #71: Update section 4.2 of docs to describe manual adding to geometry columns.
Decided to just add a new section after
Modified: trunk/doc/using_postgis.xml
===================================================================
--- trunk/doc/using_postgis.xml 2008-11-21 08:36:39 UTC (rev 3312)
+++ trunk/doc/using_postgis.xml 2008-11-21 14:15:35 UTC (rev 3313)
@@ -468,7 +468,7 @@
</variablelist>
</sect2>
- <sect2>
+ <sect2 id="CreateSpatialTable">
<title>Creating a Spatial Table</title>
<para>Creating a table with spatial data is done in two stages:</para>
@@ -570,6 +570,47 @@
there.</para>
</note>
</sect2>
+ <sect2>
+ <title>Manually Registering Geometry Columns in geometry_columns</title>
+ <para>The AddGeometryColumn() approach creates a geometry column and also registers the new
+ column in the geometry_columns table. If your software utilizes geometry_columns, then
+ any geometry columns you need to query by must be registered in this table. Two of the cases
+ where you want a geometry column to be registered in the geometry_columns table, but you can't use
+ AddGeometryColumn, is in the case of SQL Views and bulk inserts. For these cases, you must register the column in the
+ geometry_columns table manually. Below is a simple script to do that.</para>
+
+ <programlisting>
+ --Lets say you have a view created like this
+ CREATE VIEW public.vwmytablemercator AS
+ SELECT gid, ST_Transform(the_geom,3395) As the_geom, f_name
+ FROM public.mytable;
+
+ --To register this table in AddGeometry columns - do the following
+ INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
+ SELECT '', 'public', 'vwmytablemercator', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
+ FROM public.vwmytablemercator LIMIT 1;
+
+ </programlisting>
+
+ <programlisting>
+ --Lets say you created a derivative table by doing a bulk insert
+ SELECT poi.gid, poi.the_geom, citybounds.city_name
+ INTO myschema.myspecialpois
+ FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.the_geom, poi.the_geom);
+
+ --Create index on new table
+ CREATE INDEX idx_myschema_myspecialpois_geom_gist
+ ON myschema.myspecialpois USING gist(the_geom);
+
+ --To manually register this new table's geometry column in geometry_columns
+ -- we do the same thing as with view
+ INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
+ SELECT '', 'myschema', 'myspecialpois', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
+ FROM public.myschema.myspecialpois LIMIT 1;
+
+ </programlisting>
+
+ </sect2>
</sect1>
<sect1>
More information about the postgis-commits
mailing list