PostGISを初めて見ようと思いましたが何が何やら・・・。そんなときは、簡単なWindowsでGUIでざくざくっと進む方法を試してみようと思います。初めてって、ちょっとしたことで躓くんですよね。
目次
準備するもの
※PostgreSQLとPostGISのバージョンは合わせたものを利用する。
・Windows版のPostgreSQLをインストールします。
↓ダウンロードURL(Windows版)
https://www.postgresql.org/download/windows/
・PostGISをインストールします。
↓ダウンロードURL
http://download.osgeo.org/postgis/windows/
・PgAdmin4をインストール(PostgreSQLの管理用)
https://www.pgadmin.org/download/windows4.php
・インポートするデータ
今回は国勢調査データを利用します。
※細かいデータは割愛
インポート先のデータベースを準備する
・PgAdmin4を起動し、localのPostgreSQLのサーバーに接続します。それでテスト用データベースを作成します。
※PgAdmin4の動きが遅いので気を付けて操作します。
PostGISを有効にするために下記のqueryを実行する
CREATE EXTENSION postgis ; CREATE EXTENSION pgrouting ;
コマンドでは「select postgis_full_version();」を実行する
インポートを行う
・PostGIS Shapefile Import/Export Managerを起動します
・「View Connection details…」をクリックして、PostgreSQLへの接続情報を入力します。
・あらかじめダウンロードしておいた、国勢調査のデータを解凍するといくつかファイルがあります。そのうち、「shp」「dbf」「prj」「shx」の4つのファイルをインポート時に利用するのでセットのフォルダにおいてください。
・「AddFile」ボタンをクリックして、「shp」ファイルを指定します。次に、「Import」ボタンをクリックしてインポートを行います。
※SRIDは「4326」でインポートをする。(図は0となっているが4326で。)用語参照
・インポートはあっという間に終わるのでそしたら「PgAdmin4」戻って、Tablesにインポートしたテーブルがあるのか確認します。
↓東京都新宿区のデータを取り込んでみました。
インポートしたものをQGISで表示してみる
何がどうしてどーなるのか不明なため、とりあえずインポートしたデータが閲覧できるのか試してたいと思いQGISを利用します。
・QGISをダウンロードしてインストールする(http://www.qgis.org/ja/site/)
・QGISの「レイヤ」>「レイヤの追加」>「PostGISレイヤの追加…」をクリックします。
・「PostGISテーブルの追加」の「新規」クリックして、「接続先のPOSTGISの設定を登録」します。
・「接続」ボタンをクリックして、インポートしたテーブルを選択し、「追加」ボタンをクリックします。
追加完了すると画面上に表示されます。
動いているって感じですね・・。
この後はポリゴン用のデータをクエリで取り出したいんだけど、どうするのかな・・・。
GeoJSONで出力する(クエリ処理)
ポリゴンをMAPで表示するときにGeoJSON形式のファイルを読み込みます。それなのでGeoJSONの形式出力をいろいろなところを参考にして試してみました。
・geom列をGeoJSON形式にしてgeometryとして出力
SELECT ST_AsGeoJSON(geom)::json AS geometry FROM "h22ka13104"
↓なんかそれっぽくみえるけど。。。
あれ、出力の値が想定と違う・・・。SRID:4326で出力したいのだが・・・。
→インポートの時にSRIDの指定を間違えていたので失敗していた。
PSQLのコマンドメモ
psql -t -f ファイル名.sql -U postgres テーブル名 > 出力ファイル名
緯度経度から住所変換
ST_Withinを使えば可能。取得した緯度経度の測地系に気を付ける。
町丁目をクリック→選択
それっぽい感じになりました。