項目名の制限と対策
QGISは属性名の長さが半角10文字以内と短いため使い難い。より長い文字列を項目名として使う対策として2通りある。
- 項目名を編集する方法
- 項目の別名を定義する方法
項目名自体を編集するには、プロセッシングツールを使う必要があり、新しいShapeファイルへ書き出すことになるので手間がかかる。
項目の別名は通常メニューから操作でき、新しいShapeファイルも作成されない。
項目名を編集する方法
各レイヤの属性データの項目名を変更方法として、Table Managerというプラグインの利用が紹介されているが、これを実行してみたところ「最新バージョンではQGIS内でテーブル操作が可能となっており、プラグインの仕様はデータの破壊の可能性が・・・」といった趣旨の警告ダイアログが立ち上がる。
プロセッシングツールの「フィールドのリファクタリング」を用いるとよいらしいので、メニューからたどってみると、属性テーブルの項目情報が表示され、それらが変更可能になっていた。
メモとして手順だけを示しておく。
- 「プロセッシング」→「ツールボックス」でプロセッシングツールボックスが開く
- 「QGISジオアルゴリズム」→「ベクターテーブルツール」と階層をたどると「フィールドのリファクタリング」が見つかる
- それをダブルクリックするとダイアログが立ち上がり、属性テーブルの項目情報が表示される。
- 入力レイヤを選択
- “Do you want to reset the field mapping?”のダイアログに「はい」
- フィールドマッピングエリアで、項目名(Name)の書き換え
- Refactordで新しいファイルの保存場所とファイル名を指定
- System(UTF-8にしたらエラーになって文字化けした)
- Run
- Pythonでエラーが出るが気にしない
注意点
新しいShapeファイルの書き出しは、フォルダが空の場合は早いが、既に同名のshpファイルがある場合は極端に処理が重くなる
項目名の別名を定義する方法
レイヤのプロパティから、各項目の別名を入力・設定することができる。この方法は新しいShapeファイルを生成しないので時間がかからない。
レイヤーのプロパティーを表示
項目名を変更するレイヤーを右クリックして「プロパティー」を選択。
レイヤプロパティダイアログで以下のように操作する。
- 左側のタブ中、「属性フォーム」を選択
- 項目名を変更したいフィールドを選択し、別名(Alias)に好みの項目名を入力
- OKボタンをクリック
これによって、属性テーブルを表示させたとき項目名に別名が表示されるようになる。