0.リファレンス
1. ogr2ogrについて
地理情報のデータフォーマットの変換では、GDAL (Geospatial Data Abstraction Library)にある、ogr2ogrコマンドを使います。シェープファイル専用という訳ではなく、対応するフォーマットならいかようにも変換してくれます。
2.MySQLへのインポート
MySQLにシェープファイルをインポートするには、ogr2ogrに以下の引数をつけて実行します。引数は、したいことによって変わるかと思いますので、リファレンスのご一読をお勧めします。
user$ ogr2ogr -s_srs (シェープファイルのEPSGコード)-f MySQL MySQL:(データベース名),user=(ユーザー名),host=(ホスト名),password=(パスワード) (インポートするシェープファイル名) -lco engine=MYISAM,CHARSET=utf8 -nln (テーブル名)-append
例)
user$ ogr2ogr -s_srs EPSG:2451 -f MySQL MySQL:db_name,user=hogehoge,host=localhost,password=hoge test.shp -lco engine=MYISAM,CHARSET=utf8 -nln test_table -append
-s_srs で投影系のSRIDを渡します。例の場合、EPSG:2451ですから平面直角座標系(GRS80)9系ということです。わからなければ、QGISなどでシェープファイルを開いてみたりすると調べることができます。
-f MySQL以下はデータベースへの接続に必要な情報を入れます。
-lcoでは、MySQLに向けて環境変数を渡します。MySQLではいくつかのデータベースエンジンを利用できますが、地理情報はMyISAMでしか扱えないため、きちんと設定してあげます。また、文字コードはutf=8を利用することもあわせて知らせます。
-nln 以下は作り出すテーブルの名前です。
-appendはデータベースにテーブルを追加するという意味です。
3.MySQLでの確認
テーブル内をそのまま確認すると、ポリゴンなどのデータが文字化けします。geometry型のカラムをのぞきたいときは、下記のようなSQL文を使います。
例)
SELECT ASTEXT(カラム名) as geomtext FROM テーブル名;
ASTEXT()だけでなくX(カラム名)やY(カラム名)で経度緯度が取り出せます。
No comments:
Post a Comment