岐阜県■区域図形Shape変換ツール、公示図書印刷ツールについて2026/07/17現在
最初に分かりにくかったのはALLシェイプの作り方
Excelの初期設定には、次の項目がある。
SFF出力ALLSHP保存先パス
最初は、公示図書用のSHP保存先だと思っていたが、そうではなかった。 ここに指定するのは、管理型調書作成ツールで作成したALLシェイプの保存先である。
管理型調書作成ツールを起動し、次の操作を行う。
ツール
→ 納品データ(Shapefile)の作成
実行すると、Shape_Dataフォルダが作成され、
その中のAllフォルダに次のようなファイルが出力される。
all_UPOINT.shp
all_LPOINT.shp
all_MLINE.shp
all_YZONE.shp
all_RZONE.shp
all_SRMZONE.shp
all_SRSZONE.shp
Excelには、これらのファイルが直接入っているフォルダを指定する必要がある。 ここを間違えると、QGIS上にはJOTANやKATANなどのレイヤだけ作られるが、中身は0件になる。
フィーチャ数 0 のためスキップ
それでも最後には「急傾斜ALLshp作成 完了」と表示されるため、 正常に終わったように見えてしまう。処理完了の表示だけでなく、フィーチャ数も確認した方がよい。
QGISを開くとリンク切れが出る
各箇所に作成されたKEN0259003_その2.qgzなどを開くと、
「利用できないレイヤを処理する」という画面が表示される。
リンク先を確認すると、次のようなテスト環境と思われるパスが残っていた。
C:\岐阜県公示図書ツール_test\基DM変換_SHP\DM_1.shp
C:\岐阜県公示図書ツール_test\ALL_SHP_kyukei\KATAN.shp
この画面では「利用できないレイヤを保持する」を選び、その後にPythonを実行する。 Pythonで実際の業務フォルダへパスを変更する仕組みなので、手動で一つずつリンクを直す必要はない。
建物がすべて灰色になる
Pythonを実行すると区域やDMは表示されたが、建物がすべて灰色のままだった。 本来は普通建物、堅ろう建物などが青や紫、赤で表示される設定になっている。
QGISの分類設定を確認すると、テンプレートでは次のフィールドを参照していた。
分類コ_1
一方、実際のDMデータでは次のフィールド名になっていた。
分類コーA
そのため分類できず、すべて「その他の値」として灰色で表示されていた。 分類フィールドを実際のDMに合わせて変更すると、建物の色は正常に表示された。
標高や地名が表示されない
建物の色は直ったが、標高値や地名などの注記が表示されなかった。 これも同じ原因で、テンプレートと実際のDMで参照しているフィールド名が違っていた。
テンプレート側 実際のDM側
分類コ_1 分類コーA
フォン フォントフ
回転角 回転角度
QGISはテンプレートに保存されたフィールド名で分類やラベル表示を行う。 そのため、パスだけ正しいDMに切り替えても、属性名が違えば表示は直らない。
DMの日本語フィールドが文字化けする
DMのフォルダに.cpgファイルがない場合、
QGISで日本語フィールドが文字化けすることがあった。
分類コーA
↓
���ރR�[A
この状態では、Python側で正しいフィールド名を指定しても一致しない。 対策として、DMのフォルダに次のファイルを作成した。
DM_1.cpg
DM_3.cpg
ファイルの中身は次のとおり。
CP932
注意点は、QGISでDMを読み込む前に.cpgを用意すること。
一度文字化けした状態で読み込んだ場合は、.cpgを作成した後にQGISを閉じ、
プロジェクトを開き直す必要がある。
OneDrive上ではExcelマクロが動かない場合がある
ツール一式をOneDriveやSharePoint上で開くと、Excelが保存場所を通常のWindowsパスではなく、 次のようなURLとして取得する場合がある。
https://~sharepoint.com/~
そのため、次のエラーが発生した。
tempフォルダが存在しません
ツール一式は、次のような通常のドライブパスに置いた方がよい。
C:\公示図書作成ツール
または
Q:\業務フォルダ\公示図書作成ツール
OneDriveを使う場合でも、SharePointのURLではなく、 エクスプローラー上の同期フォルダとして開く必要がある。
Pythonの処理にも確認不足がある
元のPythonではDMのパス変更は行っているが、次の確認はほとんど行っていなかった。
- DMが正常に読み込めたか
- 必要なフィールドがあるか
- 分類フィールドが正しいか
- ラベルの参照先が正しいか
- フィーチャ数が0件ではないか
ファイルがない場合やデータが0件の場合も、処理をスキップして最後まで進むものがある。 そのため「処理完了」と表示されても、実際には正常な成果ができていないことがある。
今回はこちらでPythonを修正し、次の処理を追加した。
- DM読み込み前に.cpgを作成
- DM_1、DM_3の読み込み確認
- 必要フィールドの存在確認
- 建物分類フィールドの修正
- 標高、地名、注記の設定修正
- 異常時は処理を停止
- 処理後に再描画
修正後は、建物の色、標高、地名、文字の回転も正常に表示された。
正常に進めるための手順
1.管理型調書作成ツールでShapefileを作る
ツール
→ 納品データ(Shapefile)の作成
Shape_Data\Allを作成する。
2.Excelの初期設定を行う
DM.shp参照パス
Excel調書参照パス
SFF出力ALLSHP保存先パス
公示データ保存先パス
3段目には、all_UPOINT.shpなどが直接入っているフォルダを指定する。
3.管理一覧とフォルダを作る
①管理一覧および構成作成
4.QGISでALLシェイプを作る
■急傾斜ALLshp作成_ALL_run.py
フィーチャ数が0件になっていないか確認する。
5.各箇所の公示図書を作る
KEN~_その2.qgzなどを開き、
リンク切れ画面では「利用できないレイヤを保持する」を選択する。
■急傾斜その2_ALL_run.py
を実行する。
配布されているツールは修正した方がよい
今回確認した限り、県のサイトで配布されている公示図書作成ツールは、 そのまま使うにはいくつか問題がある。
- テスト環境の絶対パスが残っている
- DMの文字コード指定がない
- テンプレートと実際のDMでフィールド名が合っていない
- データが0件でも処理完了になる
- 必要なファイルがなくても処理を継続する
- 異常時のメッセージが分かりにくい
県のサイトでは標準ツールとして配布されているため、 利用者ごとにPythonやQGISの分類設定を修正する前提では困る。
少なくとも、次の修正を行った版に差し替えた方がよいと思う。
- DMの文字コードを正しく設定する
- 実際のDM属性に合わせてテンプレートを更新する
- テスト用絶対パスを削除する
- 必須データがない場合は処理を停止する
まとめ
今回一番困ったのは、エラーが出ずに最後まで処理が進むことだった。 「処理完了」と表示されても、正常にデータができたとは限らない。
確認した方がよいのは次の点。
- 指定したパスに必要なファイルがあるか
- レイヤのフィーチャ数が0件ではないか
- 日本語のフィールド名が文字化けしていないか
- 分類やラベルの参照先が実データと合っているか
- 建物色、標高、地名が正しく表示されているか
仕組みが分かれば、Pythonで処理内容を確認したり修正できる点は便利だと思う。 ただ、県の標準ツールとして使うのであれば、 利用者がPythonやQGISの属性構成を調べなくても動く状態にしておく必要がある。
現状のツールは、操作手順の問題だけではなく、 配布されているテンプレートと実際のデータ構成が合っていない部分があるため、 ツール側の修正が必要だと思う。
コメント
コメントを投稿