法務省備付地図の地図XML（２０２５年度版）からのベクトルタイル作成（２０２５年４月）-PowerShell、mojxml-rs、tippecanoe（WSL2上）を利用

# はじめに
2025年度も4月15日に法務省さんがG空間情報センターから地図XMLを公開してくれました。そこで、昨年に引き続き今年も全国の公共座標データをベクトルタイルにしました。今年はXMLからGISデータへの変換に新しいプログラムを使ったので昨年よりずいぶん早くなりました。今後のために方法をメモしておきます。

# 環境
* Windows PC (Windows 11 Home、x64ベース、メモリ16GB)
* Windows PowerShell version 5.1
* WSL version2 (Ubuntu)
* tippecanoe v2.53.0

# 手順
## Step 1. XMLデータのダウンロード
これは昨年同様にWindows PowerShellを使ってダウンロードしてきました。2024年は2010ファイルありましたが、今年は2006ファイルでした。通信環境なのか、アクセスが集中していたからなのか、少し時間がかかり２日くらいかかりました。（のちのプロセスで３つくらいZIPが解凍できないファイルがあったので再度ダウンロードしたら解決しました。）

```Powershell
$jsonData = (curl.exe 'https://www.geospatial.jp/ckan/api/3/action/resource_search?query=name:-2025.zip&limit=2100' | ConvertFrom-JSON)

for ($i=0; $i -lt $jsonData.result.results.name.length ; $i++ ){
  curl.exe -LO $jsonData.result.results.URL[$i]
}
```

## Step 2. ファイル数の計算
こちらはベクトルタイル変換に関係ないですが、数日かけて各市区町村のXMLファイル数と公共座標率、筆数と公共座標率を調べてみました。

2025年の筆ポリゴン総数は 245,507,392 でうち公共座標のものは 114,768,741 でした。2024年度は245,392,271 ポリゴンで公共座標が 114,036,373 でしたから、全体は10万ポリゴンぐらい増えて、公共座標は70万ポリゴンくらい増えていますね。

(結果↓)
https://github.com/ubukawa/chizuXML2025-chikuFude

(方法↓)
https://qiita.com/T-ubu/items/391ad0197c23a22ebdc7

公共座標が増えた数でみると浜松市が多いですが、これは区割り変更でできた町字ですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/c90f6465-4d2e-4218-8fde-48f233a2acfc.png)

浜松市関係を除いた中で公共座標筆数の増加が多いのは以下のようなところでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/1577f71b-43de-4194-9e80-a36b256cb20e.png)

##  Step 3. XMLからGIS形式への変換（FlatGeoBuf）
昨年はデジタル庁さんのツールを使って、ZIPファイルを解凍してからXML→GeoJSONへの変換を行いました。今年はkeichan34さんが開発したオープンソースの KotobaMedia/mojxml-rs を使ってFlatGeoBufに変換しました。Rustを使っていて、ZIPファイルをそのまま読み込んでGIS形式に変換できるので既存のツールより早いというメリットがあります。

https://github.com/KotobaMedia/mojxml-rs

Windows環境なので、以下のv0.1.1のリリースから、windows用にコンパイル済みのEXEファイルをダウンロードして実行しました。
https://github.com/KotobaMedia/mojxml-rs/releases/tag/v0.1.1

```PowerShell
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01101-4300.fgb data/01101-4300-2025.zip
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01102-4306.fgb data/01102-4306-2025.zip
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01103-4306.fgb data/01103-4306-2025.zip
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01104-4316.fgb data/01104-4316-2025.zip
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01105-4307.fgb data/01105-4307-2025.zip
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01106-4307.fgb data/01106-4307-2025.zip
./mojxml-rs.exe -t temp ./fgb_data/moj-2025-01107-4313.fgb data/01107-4313-2025.zip
#以下省略
```
(当初コマンドを実行したらうまくいかなかったので、WindowsPCにRUSTをインストールしたら問題なく進むようになりました。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/4c12f3a8-1c43-4a1a-90bb-0c4fa390dfe5.png)

この過程でうまくデータを作成できないZIPファイルがありましたが、これはダウンロードが不完全だったことが原因だったようで、再度データをダウンロードして実行してうまくいきました。


変換したFGBファイルをQGISでみると以下のような感じです。Githubのところのissueにもあるようにv1.1.0現在では代表点経緯度の座標は付与されていませんので、使い方によっては注意が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/491fc9b9-315f-4c86-84db-1187e95b61f8.png)

##  Step 4. ベクトルタイルへの変換
FlatGeoBuf形式はそのままTippecanoeでベクトルタイルに変換できます。
今回、ファイル数が2006あるので、
１）２００６のFlatGeoBufファイルを１つずつ２００６のmbtiles形式に変換
２）都道府県ごとにmbtilesをまとめてpmtilesを作成
３）都道府県後のpmtilesをまとめて全国のpmetilesを作成
という３段階で作業をしました。

WSL2（Ubuntu）を使います。以下のコマンドを実行しました。Tippecanoeは昨年の作業ですでにインストールしているのでここでのインストールの説明は省略します。

```bash
#２００６のFlatGeoBufファイルを１つずつ２００６のmbtiles形式に変換
for f in fgb_data/*.fgb; do tippecanoe -o mbtiles/`basename ${f} .fgb`.mbtiles --no-feature-limit --no-tile-size-limit -Z14 -z16 -L fude:${f}; done

#都道府県ごとにmbtilesをまとめてpmtilesを作成
for i in $(seq -w 1 47); do fileList=$(ls moj-2025-${i}*.mbtiles); echo $i;tile-join -f --no-tile-size-limit -o d-${i}.pmtiles $fileList; done

#都道府県後のpmtilesをまとめて全国のpmetilesを作成
fileList=$(ls *.pmtiles)
tile-join -f --no-tile-size-limit -o d.pmtiles $fileList

```

↓最初の画面はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/87e1b779-156e-40e7-b3d5-4a4bd5ec580f.png)

mbtilesを作成したときに、たぶん公共座標系がないファイルでは mbtiles-journal が残ってしまいますが、気にしないで作業を進めました。

mbitlesはこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/42118170-5698-4161-a23b-df53964c402c.png)

pmtilesはこんな感じです。全国まとめたファイルでも17GB弱でした。属性を落とすともう少し小さくなるとは思います。（2022年がa、2023年がb、2024年がcとしていたので、今年はdというファイル名にしました。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/87b420a2-2233-45b8-a481-30b2fd39e5f7.png)

# まとめ
2025年度も、法務省登記所備付地図のXMLデータから、全国の筆（公共座標）のベクトルタイルができました。
昨年はGIS形式への変換に半月ほど時間を要したのですが、今年はkeichan34さんのツールのおかげもあり、大きく作業が効率化しました。
なお、本メモは自分の環境での作業記録であり内容に間違いがある可能性もあります。内容を参照する際にはご注意ください。


# 謝辞
データを公開してくれている法務省さんと、データをホストしてくれているG空間情報センターさんに感謝します。また、特に今年は効率的な変換ツールを作ってオープンソースとして公開してくれたKeichan34さんに感謝しています（もちろんその元のプログラムを公開してくれたデジタル庁にも感謝しています）。ありがとうございました。

# 参考
https://front.geospatial.jp/

https://www.moj.go.jp/MINJI/minji05_00494.html

https://kotobamedia.com/2025/04/24/mojxml-rs-released/?fbclid=IwY2xjawKGJZ5leHRuA2FlbQIxMQBicmlkETE0NUdQRno4Y1pocU02amMxAR6YmgoDOFj7AmdD-QZeUTM_9aqgOLEjPP4yryX1QFkA33OChzT0_bZYB_s-vQ_aem_zOrJMGafkXyt0Lahl3qEFw

https://github.com/KotobaMedia/mojxml-rs

（自分の昨年の作業記録）
https://qiita.com/T-ubu/items/5c40d89c9d61ef9d6596