法務省登記所備付地図（地図XML）任意座標の位置合わせ（QGISを使って）

# はじめに
## ポイント
QGISを使って地図XMLデータの任意座標系データの位置を調整したので、方法をメモしておきます。
（個人的な意見ですが、任意座標系はメートル単位の実測図のケースが多いと思うので、ウェブメルカトルや緯度経度の投影法上ではなくて、平面直角座標で作業すると位置を合わせやすいのではないかと思います。そのあたりを考慮して位置合わせしたいと思います。）

## もう少し詳しく
 法務省の持っている法務局登記所備付地図は、２０２３年１月に初めてデータセットがG空間情報センターから公開されて大きな話題になりました。オープンなデータとして公開され、以降、毎年度地図データが公開されています。２０２５年も４月中旬に地図XMLが公開されましたし、変換データも５月下旬にG空間情報センターから公開され、毎年度安定して公開されるような運用になってきたように思います。
　現在、このデータを利用したサービスもいろいろとみられますし、デジ庁さんのツールをベースとしてデータ変換ツールがあったり、GISソフトでの変換機能やプラグインなどもできています。
　しかし、全国すべてのデータが公共座標（平面直角座標系のどれか）で座標を持っているわけでなく、GISデータとして地図上に重ねることができないものもかなりあります。これらのデータは任意座標系のデータとして分類されています。町字によっては、任意座標系ばかりなので土地の筆のデータが配置できずに地番地図を参照することが難しくなっています。任意座標系のデータが測量した図ではなくて、参考としての位置づけの公図だと形状が不正確で配置が難しい場合もあるのですが、実測図で原点近傍にメートル単位でデータが入っているようなケースは位置を調整したりすることでおおよその場所に配置することができます。今回はそのようにして任意座標系のデータを目視で位置合わせする方法を紹介します。

※注：　GIS上で位置を調整する方法で、今回紹介する方法は元の原点を調べて移動量を計算したりしているわけではいので座標地に測量的な正しさはなくなってしまいます。地図上でおおよその位置を確認するという目的のための作業です。
 

# 作業環境
Windows 11 Home
QGIS 3.34.2

# 手順
## Step 1. 整備する町字を地図でみる
例えばMappleさんの法務局地図ビューワなどを見ながら、関心のある地域での公共座標の筆の分布を確認します。このビューワでは公共座標のデータが地図上に配置されており、任意座標データの一部（１つの町字に複数のXMLファイルがある場合もありますが、その場合でも１つのXMLファイル）は地図からリンク先で参照できるようになっています。

https://labs.mapple.com/mapplexml.html

徳島市のあたりを見ていましたが、市街地は任意座標系（赤い筆データが配置されていない）ところが多いですね。今回は徳島市の**徳島町一丁目**で作業してみたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/57aac50b-3c59-4c70-a0fc-820559dc6f79.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/00238bef-f626-4d1a-979a-d791dd5963de.png)

町名の下にある指マークをみると、任意座標系のデータの形状を確認できます。これらの任意座標データの筆をクリックすると地番やファイル名がわかります。ファイル名、例えば36201-4800-106.xmlについては最初の5桁が市区町村コード、次の４桁が法務局番号で最後の数字が当該エリアのXMLファイルの番号になっています（最後の数字は通番なので年度ごとの公開データで一致しない場合があります）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/cd115c60-2f2d-408c-9e39-c139cf84fcf7.png)

## Step 2. データのダウンロード
G空間情報センターのページ（ https://front.geospatial.jp/moj-chizu-xml-readme/ ）にアクセスしてデータを取得します。XMLデータのダウンロードにはログインが必要となるので、ユーザー登録をしていない場合は登録もします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/5bbccab1-b437-4937-b000-8c40dfc63258.png)

変換済みデータは公共座標系のみなので、XMLデータをダウンロードするを選択します。そして最新の年度のところから対象都道府県を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/174404ff-37ad-4665-865d-52da7069e520.png)

対象市町村を選びます。（徳島市は法務局が１つなのでデータセットが一つですが、松山市など場所によっては複数の法務局があるので、マップルさんの地図なども見ながら自分の必要な地図がある法務局を選択します。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/70e0cda0-f7fb-4761-933f-3efb9d7b7969.png)

こうして最新年度の地図XMLデータをダウンロードします（データ利用規約の承諾が求められます。）。徳島市はZIPで117MBのデータでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/503364ba-014c-40a2-98bc-b92524873b15.png)

## Step 3. 必要ファイルの確認
データをダウンロードしてきても、直ちにすべてのファイルを解凍する必要はありません。まず、ZIPファイル中のsearch-list.csvで終わるファイルだけをコピーして解凍します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/5b17a120-dd86-49a2-8137-7bb104e63bb7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/0b740576-700c-46e4-88f6-2a84236040b3.png)

メモ帳などで開くと、地番のリストがみられますが、どの地番がどこのXMLファイルにあるのかの一覧がわかります。筆界未定の場合もありますが、町字（地番地区）ごとのXMLを特定するには１カラム目と３カラム目を参照すればよいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/cb1f8d14-6d3e-494d-9b26-a7b1418b28c2.png)

徳島市の徳島町１丁目は３つしか筆がありませんでした。ファイルは106番（36201-4800-106.zip）に入っています。中徳島町１丁目だとたくさん筆がありましたが、少し予想外です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/7add784f-c8dc-466d-871c-02104c4a732b.png)

筆数が多くて個別にみるのが大変な場合は、パワーシェルを使って以下の通り1カラム目と３カラム目だけを抜き出し重複を排除すると簡単に町字と対応するXMLがわかります。

```powershell
# SJISで読み込み、CSVとして変換
$content = Get-Content -Path "36201-4800-search-list.csv" -Encoding Default | ConvertFrom-Csv

# 1列目と3列目を抽出（カラム名に応じて変更）
$result = $content |
    Select-Object ZIPファイル名, 地番区域 |
    Sort-Object ZIPファイル名, 地番区域 -Unique
# 結果をUTF-8で保存（必要に応じてSJISにもできる）
$result | Export-Csv -Path "list-out.csv" -NoTypeInformation -Encoding Default
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/879975e0-74ac-41af-9e38-0165eea0f1ff.png)

こうしてみると徳島町１丁目は 36201-4800-106.zip のファイルにありますが、このファイルには徳島町２丁目、３丁目、新蔵町１丁目、徳島町城内などの筆データもあるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/51dc17f9-072e-422b-8040-d986b3f83a8f.png)

なお、今回は該当しませんが、対象町字でリストしたファイルが公共座標系の場合があります。公共座標データも含めて作業したい人はそのままでいいですが、任意座標だけ必要な方は公共座標データを取り除いてください。
2025年の各ファイルの座標系一覧はこちらにあります： https://github.com/ubukawa/chizuXML2025-chikuFude/blob/main/projection-list-edit.txt

https://qiita.com/T-ubu/items/3a279d84d2bee134a9c7

## Step 4. QGISでの読み込み
### データファイルの準備
作業対象となるファイル（36201-4800-106.zip）は元のZIPパッケージから解凍しておきます（下図）。ZIPの中にZIPがありますが、QGISのツールは個別ファイルのZIPには対応しているので、１回解凍してくるだけでOKです（2回解凍してもよい）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/54391247-5ca1-4edd-ab02-55983c72d73a.png)

### QGISの準備、投影法の設定
QGISでは新しいプロジェクトを開始し、背景に地理院地図（地理院タイル）を敷いておきます。やり方がわからない場合はMIERINE社さんのブログのやり方が参考になります( https://qgis.mierune.co.jp/posts/howto_1_add_xyztiles )。

地理院タイルを追加すると、プロジェクトの投影が3857（ウェブメルカトル、ウェブ地図で使われる投影）になっています。任意座標系の位置合わせには平面直角座標系（＝公共座標系）がいいので、変更していきます。まず右下の投影ボタンをクリックします（下図赤枠）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/691cd0f9-c464-4477-af9a-3278e31416bb.png)

徳島県は平面直角座標（公共座標）の第４系なので、EPSGは6672（JGD2011,平面直角第４系）を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/9aab097d-e975-4873-871a-99bd6a39736a.png)

EPSGコードは、JGD2011の場合、公共座標系第１系～１９系で6669～6687になっています。なおJGD2011の緯度経度座標はEPSG668です。各都道府県がどの投影法なのかは以下の記事も参考にしてください。
https://qiita.com/T-ubu/items/67c3bcf1d16487cdf86e
https://www.gsi.go.jp/sokuchikijun/jpc.html

### データの読み込み
データの読み込みにはMOJXML Loaderというプラグインを使います。プラグインがない場合はインストールします。

プラグイン ＞ プラグインの管理とインストール　から、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/62cddb38-c554-4c23-a2a6-045f5a4e060c.png)

xmlで検索するとMOJXML Loaderが出てきます。内容を確認し、インストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/bba33cc3-52b6-41d0-9e00-c8aac41e3667.png)

プロセッシングからツールボックスを開くと、インストールしたプラグインが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/edb29b9e-9520-47a6-9af7-7c736d48beaa.png)

プラグインを使って、先ほど準備したファイルを読み込みます。任意座標系を扱うので、真ん中のチェックボックスを指定します。また、出力先のデータとしては一時ファイルではなくシェープファイル形式などを選んで保存しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/2f9241c9-f3af-484e-908c-62049ca3d9e8.png)

これでファイルを読み込むことができました。ただし、まだデータが表示されていない場合が多いかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/da4b41bc-81f7-46f9-acd0-631ec3c06407.png)

## Step 5. QGISでのデータ編集
### データの座標系設定
前の段階までで読み込んだレイヤを右クリックし、レイヤの領域にズームします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/28e2d5e5-d5de-4150-80a6-ea7a5066d081.png)

しかし、任意座標系のデータなので、変な形が見えるか、何も見えない場合が多いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/0c7c8602-4284-4e33-92b9-262a93113a26.png)

その場合、レイヤを右クリックし、プロパティ ＞ ソースを選択し、レイヤの参照座標系を公共座標系に変換します。（デフォルトだとWGS84、緯度経度座標になっているので、公共座標系のXMLをプラグインでインポートしたものはそのままで大丈夫だと思います。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/99f1e79a-22eb-4599-872c-cbbb7ede6ccd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/df22e3cb-1166-45aa-baac-34f0aa4a6a4c.png)

その結果、図形のデータが見えるようになりました。任意座標系は現地での実測結果をXY座標上に落としているケースが多いと思われ、メートル単位でデータが管理されている場合が多いような印象を持っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/1ddfa4c0-bc9b-4dc1-a9df-171f6d7a8840.png)

ちなみに、こられの図形データは原点近傍（公共座標の各系の原点）に配置されていることが多いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/8e9ad133-250b-4da2-a628-00aa88658970.png)

### 編集開始・データの移動
レイヤを選択し、鉛筆マークを押してベクトルデータの編集を開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/367356db-5354-43ca-bb68-0316885594ad.png)

「高度なデジタイズツールバー」を表示しておきます。パネルの空白部分で右クリックしてリストをだしてチェックボックスにチェックを入れればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/b7d0c9d0-84cb-4478-9d1e-20f7f1c8def6.png)
ツールバーがでました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/c4aa9bbd-6994-4a8a-a21e-a3b23ad56d8e.png)

好みによりますが、地物選択は矩形選択からポリゴンでの選択にしておくと使いやすいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/6a320264-7c07-4a51-a27b-b46d428ecadd.png)

最初は図形をすべて選択します。レイヤを選択している状態で、先ほど変更したポリゴンでの選択などを使って、最初はすべての筆を選択します。左クリックで頂点を指定し、右クリックで終了します。選択を間違えた場合は、右隣の右隣の黄色に赤丸がついたボタンで選択をクリアできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/d557bfeb-cda1-4113-b1d7-da88062f2762.png)

選択した状態で、高度なデジタイズツールの移動ボタンを押して、配置する場所の近くまで移動させます（レイヤが編集可能でないと移動できません）。ドラック・ドロップではなく、クリック一度で移動開始、二度目で移動終了となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/ce624fcc-b4ef-4ee3-bacd-5a1f0a48ec37.png)

近くに移動してきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/6c294b61-c0bb-405a-89f5-580b5430f3ce.png)

いったん選択を解除して、町字ごとに色塗りを変えたり、地番のラベルを表示させると便利です（ポリゴンの塗は半透明のほうが見やすいです）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/26c17272-7ed4-4c4b-b721-97e296f2f288.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/b2a3d0c0-7fd4-44de-822f-35ce619b7d06.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/709100dc-daab-407b-8225-92681280090d.png)



まず、筆と道路の形状がそれなりにわかりそうな徳島町３丁目を選択し、移動していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/66308c0d-ffc4-4cdb-8646-a4a2a74d807c.png)

平行移動だけでは合わないので、回転や拡大縮小も使います。また、現在の道路に一致するとは限らないので、過去の空中写真なども見て道路の変更がある場合は注意して作業をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/a58e2205-e49b-4422-8281-ab0761ca493a.png)

移動、回転、合わなかったら戻して回転、拡大・縮小、移動等を繰り返してそれなりの場所に配置します。平面直角座標も横メルカトル投影と投影された図法なので、すべてがぴったりと一致するのは難しいですが、おおよその場所に配置できればよしとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/051c9a5f-438c-4b87-b132-7ebdbbb85bc2.png)

2丁目、１丁目と同じように位置合わせしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/2ddaccdc-ba2d-4faf-a39a-263ac20cc2ee.png)

やっているうちに合わせられなくて隙間があるところも出てきます。水や長狭物不明等のポリゴンの重複は仕方ないですが、地番でもぴったり来ないことがあります（下図の1－1W3とW1など）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/1a6d6c8b-87e7-4e40-8e93-a9ad298ec6c9.png)

106のファイルのポリゴンをすべてそれなりに位置合わせをしました。筆の形状や道路との関係で位置を合わせられることが多いですが、難しい場合には地番の場所の確認から作業をする必要があることに注意です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/82130e1c-db28-475f-abcd-5f8efbdd2ab1.png)

編集が終われば保存ボタンを忘れずに押します。このようにして、位置調整したデータを得ることができました。複数のXMLファイルがある場合には複数回繰り返し、最後にベクトルファイルをマージすればよいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/8aa0dba5-d7d6-41f6-a253-5cb435a377d2.png)

# まとめ
今回、2025年の地図XMLデータをダウンロードして、特定の町字の任意座標データの位置座標を調整しました。測量的な正確さは確保できませんが、どこの地番がどのあたりかを見る程度であれば参照できるデータになるのではないかと思います。

# 参考ページ等
https://labs.mapple.com/mapplexml.html

https://front.geospatial.jp/

https://qgis.mierune.co.jp/posts/howto_1_add_xyztiles

https://qiita.com/T-ubu/items/67c3bcf1d16487cdf86e

https://www.gsi.go.jp/sokuchikijun/jpc.html

https://qgis.mierune.co.jp/posts/usecase_moj-mapdata