QGISを使って、任意座標系データを地図に合わせる方法

登記所備付地図データが公開されましたが、任意座標系のデータはすぐにはGoogle Map等の地図と重ね合わせができません。
QGISを使うと、マニュアル操作で一応の重ね合わせができましたので、その手順を解説します。

手順の概要は次のとおりです。
1.地図XMLデータをShape形式に変換
2.QGISへの読み込み
3.Vector Benderを使って位置合わせ

1.地図XMLデータをShape形式に変換

最初に、ダウンロードした地図XMLデータをShapeファイルに変換します。
変換は、Excelを使った、フリーのコンバータSIMA・地籍フォーマット2000・法務省地図XML⇒GISを使いました。
ソフトをダウンロード後、「SIMA・地籍フォーマット2000・法務省地図XML⇒GIS_2.20.xlsm」をダブルクリックするとExcelの画面が開きます。

”法務省地図XML⇒シェープファイル”ボタンをクリックすると、フォルダ名を聞いてきますので、地図XMLデータが入っているフォルダを指定します。
指定後、フォルダ内の地図XMLデータが全てShape形式に変換されます。

2.QGISへの読み込み

QGISを起動し、最初にGoogle Mapや地理院地図等のベースマップを表示します。
次に変換したShape形式のファイルをレイヤに追加します。
追加したレイヤは、それぞれの地域により、次の地図上の十字の位置に配置されます。

出典:国土地理院「わかりやすい平面直角座標系

例えば、今回テストしたのは兵庫県のデータなので、5の位置に配置される筈ですが、実際は6の位置に表示されました。(これは変換ソフトのバグで、修正版が出ています。)
次の画面は兵庫県三木市の筆界データを表示したもので、全く関係のない場所に表示されます。

本来の位置より遠くに離れていると後の作業が行い難いので、筆界データを本来の位置の近くまで移動しておきます。

3.Vector Benderを使って位置合わせ

細かな位置調整はVector Benderというプラグインを使用しました。
このプラグインを使用するには、QGISのメニュのプラグイン > プラグインの管理とインストールをクリックし、表示されたリストからVector Benderを選択した後、インストールボタンを押します。

インストール後、メニュのプラグインのリストにVector Benderが追加されますので、それをクリックします。
次のウィンドウが開きます。

このウィンドウで、"Layer to bend"では変換するレイヤを指定します。
”Pairs layer”では赤枠のアイコンをクリックすると、レイヤにVector Benderというレイヤが追加されます。

このVector Benderのレイヤを右クリックし、”レイヤのCRS”で”EPSG:2448"をクリックします。
この”EPSG:2448"は都道府県により異なってきますので、筆界データのCRSと同じにします。

次にVector Benderのレイヤを編集可能にした後、”線の地物を追加”ボタンをクリックします。
カーソルの形状が〇に十の字になりますので、筆界データの1点をクリック、対応するベースマップ上の1点をクリックし、右ボタンをクリックすると次の画面のように緑のラインが描画されます。
同じようにして、もう1本の対応付けのラインを指定します。

2本の対応ラインが設定されると、Vector Benderのウィンドウは次の表示となります。

Transformation typeはLinear -exactry 2 pairsと表示され、Runボタンが有効になりますので、Runボタンを押します。
変換が終わると、次の画面のように、指定した位置にマッピングされます。

2点の対応点ではほぼ合っていますが、少し離れると微妙にずれていて、ぴったり合うものではないようです。
Vector Benderには頂点を細かに調整する機能もあるので、丹念にやれば合わせる事ができるのかもしれませんが、ちょっとやってみたところでは、直線性が損なわれるなど、簡単ではありません。

ぴったりは合わないですが次の画面のように、クリックすれば地番が表示されますので、これは素晴らしい事だと思います。
フリーソフト、オープンソース、オープンデータに携わっている方々に感謝です。