Daily Archives: 06/08/2013

PostGISを使ってみる。[Chapter 1]

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すると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image01.jpg

な感じで表示されます。

次に、Plugin iconもしくはメニューから
blog.godo-tys.jp_wp-content_gallery_postgis_01_image02.jpg

PostGIS Shapefile and DBF loder 2.0を選択すると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image03.jpg
Shapefile Import/Export Manager dialogが表示されます。

ここでAdd fileをClickしてImportするShapefileを選択します。
選択画面は、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image04.jpg
な感じでDialogが開きますので、ImportするShapefileを選択します。

選択すると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image05.jpg
のようにShapefileの情報が表示されます。

次に、Optionsをclickします。
blog.godo-tys.jp_wp-content_gallery_postgis_01_image06.jpg
のDBF Charactorを変更します。今回はShift_JIS形式を読み込みます。

Options設定後、Importをclickすると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image07.jpg
な感じでImportが正常に終了したメッセージが表示されます。
ここで、エラーが出た場合は、dbfのcharactor設定かShapefile自身のエラーですので、QGIS等を使ってShapefileをチェックして修正したください。

Shapefile Import/Export Manager dialogを閉じて、データベースrefreshさせると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image08.jpg

c14_regionが新しく追加されています。

次に、c14_regionの内容のチェックをします。
メニューから、任意のSQLクエリーを実行を選択すると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image09.jpg

Qurey dialogが表示されます。
SQLエディターに
select * from c14_region;を入力して実行すると、
blog.godo-tys.jp_wp-content_gallery_postgis_01_image10.jpg

のように出力ビューにデータベースの中身が表示されます。
日本語も化けていないようですね。

今回のまとめ

PostgreSQLとPostGISのInstallを行いました。
そして、ShapefileをPostgreSQLへImportしました。

簡単な操作でShapefileを取り込めるようになりました。 GUI操作でできるので非常に便利になりましたが、もしものためにCUIでも操作できるようにtryしてくだい。

次回は、サンプルで使用している道路や鉄道のShpaefileもImportして、MapServerかGeoServerを利用して、OpenLayersを使って表示してみます。

1 / 11

Social Widgets powered by AB-WebLog.com.