关于Postgis的安装使用,建议参考官方手册 http://www.postgis.org/docs/ch02.html
------------------------------------------
创建控件数据库的参考:
createdb yourdatabase
createlang plpgsql yourdatabase
psql -d yourdatabase -f postgis.sql
psql -d yourdatabase -f postgis_comments.sql
psql -d yourdatabase -f spatial_ref_sys.sql
------------------------------------------------
The first step in creating a PostGIS database is to create a simple Postgresql database.
createdb [yourdatabase]
Many of the PostGIS functions are written in the PL/pgsql procedural language. As such,the next step to create a PostGIS database is to enable the PL/pgsql language in your new database. This is accomplish by the command
createlang plpgsql [yourdatabase]
Now load the PostGIS object and function definitions into your database by loading the postgis.sql
definitions file (located in [prefix]/share/contrib
as specified during the configuration step).
psql -d [yourdatabase] -f postgis.sql
For a complete set of EPSG coordinate system definition identifiers,you can also load the spatial_ref_sys.sql
definitions file and populate the spatial_ref_sys
table. This will permit you to perform ST_Transform() operations on geometries.
psql -d [yourdatabase] -f spatial_ref_sys.sql
If you wish to add comments to the PostGIS functions,the final step is to load the postgis_comments.sql
into your spatial database. The comments can be viewed by simply typing \dd [function_name] from a psql terminal window.
Some packaged distributions of PostGIS (in particular the Win32 installers for PostGIS >= 1.1.5) load the PostGIS functions into a template database called template_postgis
. If the template_postgis
database exists in your Postgresql installation then it is possible for users and/or applications to create spatially-enabled databases using a single command. Note that in both cases,the database user must have been granted the privilege to create new databases.
From the shell:
# createdb -T template_postgis my_spatial_db
From sql:
postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis
--------------------------------------------------------------
如果系统中没有存在template_postgis模板,需要自己手动创建,
$psql template1
template1=#create database template_postgis with template=template1;
template1=#update pg_database set datistemplate=TRUE where datname='template_postgis';
template1=#\c template_postgis
template_postgis=#create language plpgsql;
template_postgis=#\i /opt/locale/share/postgis/lwpostgis.sql;
template_postgis=#\i /opt/locale/share/postgis/spatial_ref_sys.sql;
template_postgis=#GRANT ALL ON geometry_columns TO PUBLIC;
template_postgis=#GRANT ALL ON spatial_ref_sys TO PUBLIC;
template_postgis=#VACUUM FREEZE;
template_postgis=#\q
createdb test_gis_db -T template_postgis
dropdb test_gis_db
此部分参考 http://www.360doc.com/content/09/0220/11/1484_2597100.shtml