はじめに
本記事は FOSS4G Advent Calendar 2018 の12日目です。
FOSS4G 2018 TOKYO で発表した内容について
FOSS4G 2018 TOKYO で「MySQL 8.0で強化されたGIS機能のご紹介と周辺ツールとの連携について」という内容で発表しました。
この発表の中で、MySQL 8.0 のGIS機能について紹介したり、ogr2ogrを使ってMySQL 8.0へシェープファイルをインポートできることなどを紹介しました。
ただ、シェープファイルのインポート時に文字化けによるエラーが発生したケースもありましたので、その点について補足します。
前提
・MySQL 8.0
・GDAL 2.3.2
MySQL 8.0へシェープファイルをインポートする手順
こちらの発表資料のデモ手順を参照して下さい。
インポート時にエラーが発生したシェープファイルの例
e-Statからダウンロードできるシェープフィルの「北海道全域」、「東京都全域」などのシェープファイルでエラーが発生しました。
「沖縄県全域」のシェープファイルでは、エラーが発生しませんでした。
e-Statからは、以下のリンクをたどることでシェープファイルをダウンロードできます。また、シェープファイルのダウンロード手順は、こちらの動画でも解説されています。
■e-Statからシェープファイルをダウンロードする手順
地図で見る ⇒ 境界データダウンロード ⇒ 小地域 ⇒ 国税調査 ⇒ 2015年 ⇒ 小地域(町丁・字等別) ⇒ 世界測地系緯度経度・Shape形式
エラーを回避する方法
MySQLへインポートしたいシェープファイルを一旦QGISで開き、文字コードをUTF-8に変換して保存することで、エラーを回避できました。なお、元のファイルの文字コードはSHIFT-JISでした。
この関連するissue
この問題に関連するissueとして、以下を登録しました。
ogr2ogr with MySQL 8 (Shape file import error) #1089
https://github.com/OSGeo/gdal/issues/1089