2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PostgreSQLでGISデータの共有環境を作る

Last updated at Posted at 2019-09-29

GISデータの共有環境

 パソコンを複数使用していると、データをパソコン間で共有したくなってきます。
 一つのデータが複数のファイルに分かれるシェープファイルは、データサイズも大きく、家庭内LANでならサーバーに集約したくなるデータです。
 qgisを使っているなら、RDBMSのPostgreSQLとPostGISを利用することでシェープファイルのデータを共有できる環境を整えられる。
 久しぶりに入れ直したので手順のメモ。

PostGISとは

 RDBMSであるPostgreSQLに、空間データを扱える機能を追加するプログラム。
 PostgreSQLを使えればインストールできる。
 ネットで検索すると、いろいろ解説するページが見つかります(例えばSRA社の解説ページ)。
「これを入れればGISデータの管理がわかりやすくなるし、処理速度も速くなる」と考えておけば、ほぼ間違いないと思います。

PostGISの入手とインストール

 PostGISの入手方法はOS毎に違います。

Windows

 とりあえずデスクトップパソコンにインストールしてみます。
 複数のコンピュータから本格的にWindowsパソコンにアクセスする場合、Windowsのライセンスに適合するような方法を考える必要があります(確かクライアント用Windowsをサーバー用途で利用するのは不可のはず)。
 個人が家庭内での利用や予算が無い組織では、FreeBSDやLinuxでサーバーを一台準備するのが安全で便利かもしれません。

PostgreSQLのインストール

 日本PostgreSQLユーザ会を見に行くとダウンロードのページがあり、ここからWindowsのダウンロードページへのリンクを辿ると、EnterpriseDBという会社のこちらのページにたどり着きます。
 ここでダウンロードできるファイルはインストーラーになっており、メニューに沿って作業すると、PostgreSQL本体をインストールし、その後各種オプションを選ぶ中でPostGISをインストールできます。
 インストーラーの動作確認は、下記のようになっています。
image.png
 ダウンロードしたインストーラーを管理者権限で実行すると、次のようなダイアログが表示されます。
 image.png
 後は画面の指示に沿ってインストールします。設定する内容は、こちらの解説記事を参考にしました。
 オプションを選ぶダイアログで「Stack Bulider」は選んでおきます。
 このプログラムでPostGISをインストールします。
image.png
 PostgreSQLのインストールが終わると、次のようなダイアログが開くので、チェックをそのままにしてFinishを押すと、Stack Buliderを起動します。
image.png

PostGISのインストール

 PostgreSQLのインストールが終わったら、スタックビルダを使用してPostGISのインストールを行います。
 今まで何回かインストールしてみて、リモートサーバよりもインストールしたローカルを見に行ったほうがトラブルが無かった印象があるので、ローカルを見に行くように設定します。
image.png
 インストールするプログラムを選択するダイアログが開くので「Spatial Extensions」を開き、PostGISにチェックします(次の図ではODBCドライバにもチェックを入れていますが、AccessなどからPostgreSQLを利用しない場合これは不要です)。
 image.png
 ダウンロードの後、インストールをするか確認されます。
image.png
 スキップしないで次に進むとインストールされます。
 まず、ライセンスに同意します。
image.png
 次にインストールと同時にSpatial Database(地理情報用データベース)を作るのか確認されるので、チェックして実行します。
image.png
 データベースを作成するため、データベース管理者の認証が行われます。デフォルトではユーザーpostgresがデータベース管理者で作成されているはずです。デフォルトでインストールした場合、PostgeSQLインストール時にpostgres用に決めたパスワードを入力します。
image.png
 次に地理情報用データベースの名称を決定します。ここで作成するデータベースはテンプレートとして使用しますので、PostGISのバージョンなどがわかるようデフォルトのままが良いと思います。
 インストールの過程で環境変数GDAL_DATAを設定するか訊かれます。これは以前は無かったステップですね。
 ラスターデータを正しく取り扱うために必要とダイアログにあるので、「はい」にして進みます。
image.png
 つづいてラスターデータ用のドライバを有効にするの質問なので、これも「はい」で進めます。
image.png
image.png
 もしかして、地図タイルも格納できるようになったのかしら。
 これでインストールが終わったのでスタックビルダを終了します。
 後で他のブログラムが必要なときなどスタックビルダを利用してインストールできます。

【参考】FreeBSDやDebian

 FreeBSDではPostgreSQL、PostGISともにパッケージが準備されているので、インストール自体は簡単に終わります。パッケージの名称は/usr/ports/databasesのリストを取ると調べられます。
 Debianも同じようにパッケージが準備されています。
 クライアント用Windowsをデータベース・サーバとして利用するのはライセンス的に危険なので、サーバーにはUnixクローンを使用した方が良いかもしれません。

【参考】ソースコードから入れる

 何らかの事情でPostgreSQLをソースコードからインストールする場合、次のページが参考にします。
 以前はPostgreSQLのソースコードに添付され、contribの中に含まれていたのですが、独立したようですね。

シェープファイルを読み込んでみる

 まずGIS用のデータベースを作成します。インストールしたPostgreSQLにはPgAdmin4というWebベースのPostgreSQLの管理ツールが含まれているので、これを利用します。
 起動するとパソコンにインストールしたPostgreSQLがリストアップされます。
image.png
 今回は11を使用するので、こちらに接続します。
image.png
 データベースを作成しますが、このときpostgisのデータベースをテンプレートとします。
image.png
 とりあえず作ったデータベースがこれ。
image.png
 次にpostgis付属のシェープファイルをロードするツールであるPostGIS Shapefile import/Export Managerというプログラムを起動します。
image.png
 まずView Connection Detailsを押してPostgreSQLに接続します。次のダイアログが開くので、ユーザー名などを適切なものにして入力します。
image.png
 log windowにsuceedと表示されれば接続ができています。
 次にAdd Fileを押します。
image.png
 日本語のファイル名の場合、うまくいかないので事前に半角英数字に変えておきます。
 読み込もうとしているシェープファイルは基盤地図情報のため、日本語Windowsを前提に作成されています。このままデータベースにロードすると、エンコーディングの違いで正しく表示されないため、エンコーディングを指定します(CP932)。
image.png
 importを押すとロードされます。

qgisからPostGISへの接続

 ロードしたデータを見てみます。
 まずPostGISへの接続を作成します。
image.png
 マウスを右クリックすると、新しい接続のダイアログが表示されるので、適切な情報を入力します。
image.png
 接続テストを押すと、データベースへのログイン情報の入力が求められます。テストが成功したら作成します。
image.png
 できた接続、この場合akitacityをレイヤにドラッグすると表示されます。
image.png
 データベースにロードされたレイヤは一つなのに、同じレイヤが二つ表示されるのはなんでだろう。SRIDが違うみたいだけど。以前はこういうことは無かったけど。
 とりあえず、今日のところは新たな謎を残したまま終わることとした。

 

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?