Home > PostgreSQL/PostGISのダウンロードとインストール > Shapefileの投入と表示確認
 

PostGISへShapefileの投入と表示確認

update:2007/07/30


 ■ Shapefileのダウンロード
  1. ArcGIS Desktopサポートのサイトから日本地図のShapefile 「japan_ver60.zip」(2007/1/21現在の最新バージョン)をダウンロードする 
  2. japan_ver60.zipを解凍し、C:/mapdataフォルダに移動する
    • フォルダの階層は次のとおりになります。
      C:/mapdata
      • japan_ver60
        • japan_ver60.shp
        • japan_ver60.shx
        • japan_ver60.dbf
        • その他のファイル
 ■ Shapefileの投入

PostGISに添付されている shp2pgsql を使用してShapefileをデーターベースに投入します

C:\>cd \"Program Files"\PostgreSQL\8.2\bin
C:\Program Files\PostgreSQL\8.2\bin>
C:\Program Files\PostgreSQL\8.2\bin>createdb -U postgres -T template_postgis gisdb
パスワード
:パスワードを入力する(画面には表示されない)
CREATE DATABASE
C:\Program Files\PostgreSQL\8.2\bin>shp2pgsql -s 4612 -W sjis C:/mapdata/japan_ver60/japan_ver60.shp japantb gisdb > japan.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]

C:\Program Files\PostgreSQL\8.2\bin>
psql -U postgres -d gisdb -f japan.sql
ユーザ postgres のパスワード
:パスワードを入力する(表示されない)
 

以下のメッセージが出てShapefileがPostGISへ投入されました。


(中略)
INSERT 0 1
INSERT 0 1
COMMIT

C:\Program Files\PostgreSQL\8.2\bin>

▲TOPへ戻る

PostGISその他メモ(その他の使用方法メモです。必要でない方は読み飛ばして下さい)

※追加で投入する場合/複数のshapefileをPostGISへ投入する場合は次のように指定します(オプション "-a" を付ける)。
(ここでは、もともと存在するテーブルへ、osaka.shp と hyougo.shp と kyoto.shp の3つのshapefileを追加で投入する方法です。この時、ファイルは同じ属性と同じデータタイプである必要があります 。また異なる座標系のデータを追加で投入することはできません)

C:\Program Files\PostgreSQL\8.2\bin>shp2pgsql -a -s 4612 C:/mapdata/osaka.shp tbname dbname > kinki.sql ←osakaを投入
C:\Program Files\PostgreSQL\8.2\bin>shp2pgsql -a -s 4612 C:/mapdata/hyougo.shp tbname dbname > kinki.sql ←hyougoを投入
C:\Program Files\PostgreSQL\8.2\bin>
shp2pgsql -a -s 4612 C:/mapdata/kyoto.shp tbname dbname > kinki.sql ←kyotoを投入

C:\Program Files\PostgreSQL\8.2\bin>
psql -U postgres -d gisdb -f kinki.sql ←あとは同じ
ホスト名
localhost
パスワード:
パスワードを入力する(表示されない)
 
C:\>cd \"Program Files"\PostgreSQL\8.2\bin
C:\Program Files\PostgreSQL\8.2\bin>


pgsql2shp
を使用してshapefile へエクスポートします。

C:\Program Files\PostgreSQL\8.2\bin>pgsql2shp -f c:\Shapefile.shp -h localhost -p 5432 -P パスワード -u postgres  dbname dbtable

▲TOPへ戻る

 ■ Shapefileの投入の確認pgAdminVでテーブルが作成されているか確認

▲TOPへ戻る
 ■ MapServerからの表示確認
japan_pgisフォルダの構成

C:/ms4w/Apache/htdocs/
  |- japan
       | -
japan.map
       | -index.php
       | -fonts.txt

#japan.mapのソース

NAME JAPAN MAP

EXTENT 122.933906 24.044795 153.982426 45.556909
STATUS ON

INTERLACE ON
SIZE 600 400
IMAGECOLOR 102 153 255
UNITS METERS

WEB
  IMAGEPATH "C:/ms4w/tmp/ms_tmp/"#ms4wでの指定
  IMAGEURL "/ms_tmp/"
END
fontset "fonts.txt" #このmapfileからの相対パスで指定

LAYER
  NAME "japan postgis"
  CONNECTIONTYPE POSTGIS
  CONNECTION "user=postgres dbname=gisdb host=localhost password=パスワード port=5432"
  DATA "the_geom from japantb"
  TYPE POLYGON
  STATUS ON
  labelitem "city1" #★表示させたいフィールド名
  CLASS
    TEMPLATE void
    COLOR 110 50 100
    OUTLINECOLOR 200 200 200
    label
      type truetype
      font msgothic
      encoding SJIS #PostgreSQLのクライエントエンコードをsjisを設定した場合はSJISを指定します
      color 255 255 255
      size 8
    END
  END
  TOLERANCE 100
END

END

▲TOPへ戻る

前のページへ



Copyright (C) 2007 Yaskey. All Rights Reserved.