Pocket

【読了時間: 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として記載。お使いのファイルの文字コードに合わせてください。

執筆: 仙石裕明