【読了時間: 5分】
空間データをRDMS(リレーショナルデータベースマネジメントシステム)で扱うときは、PostGIS(Postgresの空間処理プラグイン)が主流です。他方、ウェブ開発ではMySQLを扱うことが多く、「MySQLで空間データで扱えないの?」という声を良く聞きます。
そこで、今回はMySQL5.7以上を対象に、ESRIシェープファイルを読み込む例を紹介します。
対象: UbuntuOS 16.04
インストール
シェープファイルからDBにインポートする際に、PostGISのときは shp2pgsql
コマンドがありましたね。MySQLでは ogr2ogr
コマンドを用います。
まずogr2ogrコマンドが入ったライブラリをインストールします。
sudo apt-get install gdal-bin
インポート
次にDBが作成されている状態で、下記のようにコマンドを入力します。
ogr2ogr -overwrite -progress -f "MySQL" MYSQL:${dbname},host=${hostname},user=${username},password="${password}" ${filename}.shp -nln ${tablename} -a_srs "EPSG:${epsg}" -lco ENGINE=MyISAM -lco GEOMETRY_NAME=geometry -lco CHARSET=utf8
※1 カッコのなかはお使いの環境やファイル名に変更してください。
※2 上記では文字コードをUTF-8として記載。お使いのファイルの文字コードに合わせてください。
執筆: 仙石裕明