とらりもんHOME  Index  Search  Changes  Login

PostGIS

  • Big change between 1.5 and 2.0!
  • for sqlite, Spatialite
  • Linux distribution provides old packages only. Visit postgis website and download the newest one.

インストール

  • Ubuntu 14.04の場合:
sudo apt-get install postgresql postgresql-contrib postgis postgresql-9.3-postgis-2.1

ユーザー作成

$ sudo su postgres
$ cd
$ psql
=# create role nishida SUPERUSER LOGIN CREATEDB CREATEROLE;
=# alter role nishida with password '????'
=# \q
$ exit

テスト

$ createdb testgis -E UTF-8
# psqlのversionが9.1以上の場合
$ psql -d testgis -c "CREATE EXTENSION postgis;"
# psqlのversionが9.1未満の場合
$ psql testgis -f /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis.sql
$ psql testgis -f /usr/share/postgresql/9.3/contrib/postgis-2.1/spatial_ref_sys.sql
$ psql testgis
=# select * from postgis_version();
            postgis_version            
---------------------------------------
 2.1 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)

シェープファイルからPostGIS用のファイル(SQLファイル)を作成し, 読み込む。

$ shp2pgsql -s 4612 -D -i -I -W cp932 N03-951001_08-g_AdministrativeBoundary.shp testgis > t.sql
$ psql testgis -f t.sql 

QGISで表示

$ qgis
レイヤ -> レイヤの追加 -> PostGISレイヤの追加
 新規をクリック
 名称: 適当
 サービス: 空欄でOK
 ホスト: localhost
 ポート: 5432 (デフォルトのまま)
 データベース: testgis
その上で, 「接続」をクリック。
テーブルを選んで, 「追加」をクリック。

GEOMETRY型

空間インデックスの作成

[table] … テーブル名

=# CREATE INDEX idx_table_geo on [table] USING GIST (wkb_geometry);

属性データのインデックスの作成

# ALTER TABLE [table] SET WITH OIDS;
=# CREATE INDEX idex_table_oid on [table] (oid); 

PostgreSQL 8.1以降ではデフォルトでOIDが付与されなくなった。 対処法としては上記(# ALTER TABLE ...)のように書くか、/etc/postgresql/9.3/main/postgresql.conf の default_with_oids = off を onに書き換える。

参考になるページ

Last modified:2016/07/15 15:40:24
Keyword(s):
References:[とらりもんHOME]