PostGISを使ってみる。[Chapter 1]
ShapefileやGeoJson、kmlなどのデータをOpenLayersを使って表示していましたが、データベースとの連携を考えるとPostGISを避けて通れないので、ちょいと使ってみましょう。
PostGISとは?
「PostGISとは、空間情報データベース(Spatial Database)であり、データベース上でジオメトリーオブジェクト定義し、ジオメトリー情報を格納し、空間情報の検索やジオメトリーの操作を可能にしたリレーショナルデータベースの一つである。実はPostGISは、オープンソースデータベースソフトウェアであるPostgreSQLのオープンソースライブラリとして提供されており、PostGISという単独のGISソフトウェアーではない。いうなれば、PostgreSQLを機能拡張するアドインソフトウェアーと考えればわかりやすい。同じような空間情報データベースとしては、Oracle、MySQL、SQLite、IBM DB2、SQL Server2008、Ingresなどが挙げられる。このうちオープンソースとして提供されているのは、PostgreSQL、MySQL、SQLite、Ingresである。ほかのオープンソースデータベースは積極的に使ったことはないが、SQLiteは面白いらしい。」
PostGISとはから引用しています。
Openの空間情報データベースとしては、非常に強力で実績のあるデータベースです。
MapServerでもGeoServerでも使うことができます。
PostGISのInstall
では、早速Installしましょう。
PostGISのInstallについては、PostGIS – GeoPacific.orgに非常に詳しく書かれています。
PostGISのインストール – GeoPacific.orgにしたがって、Installすれば問題なく動かすことができます。
Installした環境は、
-
Windows 7 32bit
-
PosgreSQL 9.1.9 (06/08/2013現在)
-
PostGIS 2.0.3
となっています。
ShapefileをImportしてみる。
Installが終わり、PostGISが動いていることが確認できたならば、ShapefileをPostgreSQLにImportしてみましょう。
今回使用するのは、神奈川県の市区町村行政界のshapefileデータであるc14_regionを使いました。
属性値のdbfは、Shift_JIS形式となっています。
まずは、スタート→プログラム→PostgrSQL 9.1 → pgAdmin III を起動します。
Install時に作成したデータベースtestを使います。
pgAdmin IIIからtestをclickすると、
な感じで表示されます。
PostGIS Shapefile and DBF loder 2.0を選択すると、
Shapefile Import/Export Manager dialogが表示されます。
ここでAdd fileをClickしてImportするShapefileを選択します。
選択画面は、
な感じでDialogが開きますので、ImportするShapefileを選択します。
選択すると、
のようにShapefileの情報が表示されます。
次に、Optionsをclickします。
のDBF Charactorを変更します。今回はShift_JIS形式を読み込みます。
Options設定後、Importをclickすると、
な感じでImportが正常に終了したメッセージが表示されます。
ここで、エラーが出た場合は、dbfのcharactor設定かShapefile自身のエラーですので、QGIS等を使ってShapefileをチェックして修正したください。
Shapefile Import/Export Manager dialogを閉じて、データベースrefreshさせると、
c14_regionが新しく追加されています。
次に、c14_regionの内容のチェックをします。
メニューから、任意のSQLクエリーを実行を選択すると、
のQurey dialogが表示されます。
SQLエディターに
select * from c14_region;を入力して実行すると、
のように出力ビューにデータベースの中身が表示されます。
日本語も化けていないようですね。
今回のまとめ
PostgreSQLとPostGISのInstallを行いました。
そして、ShapefileをPostgreSQLへImportしました。
簡単な操作でShapefileを取り込めるようになりました。 GUI操作でできるので非常に便利になりましたが、もしものためにCUIでも操作できるようにtryしてくだい。
次回は、サンプルで使用している道路や鉄道のShpaefileもImportして、MapServerかGeoServerを利用して、OpenLayersを使って表示してみます。
最近のコメント