QGISを使用していて、こんな時どうしたらいいのか困る場合があると思います。そんなときには、このページを見れば解決するかも知れません。
使用バージョン(QGIS3.34)
解説用のオーバーレイヤ(MapionAPI)
シェープの回転やリサイズができない
高度なデジタイズツールを使っていて、不思議にも回転やリサイズ(拡大縮小)ができなくなった、そんな現象に遭遇したことがありました。
原因は簡単で、シェープファイル内に生成されている拡張子qmdと拡張子qixを削除してしまいましょう。この2つは空間インデックスを操作するファイルなのですが、レイヤ形状を縛ってしまう効果があるためか、変形を伴うデジタイズツールが使えなくなる副作用が発生します。
したがって、この2つのファイルを削除してしまうことで再度回転やリサイズが使用可能となります(参照中に削除しても大丈夫です)。
この回転や拡大縮小は操作前に左CTRLキーを押しながらクリックやドラッグさせれば、基準点のカーソルの決定及び移動可能です。作業を行う前に基準点を一定ポイントに合わせておくと、すんなりと傾きやリサイズに対応させることができます。

「地物を回転」アイコンをクリックし、直後に左CTRLキーを押しながら+の基準点を決定させると、そこを軸に回転が可能になる(図では百万遍交差点を軸に回転)。

「地物をスケーリング」でも同様の動作が可能(図では烏丸今出川交差点を基準点にして拡大)
グループIDなしで、複数のシェープファイルを融合して一つのレイヤにしたい
複数シェープファイルの融合は、事前にある準備をするだけで簡単にそれが可能になります。
- 任意の複数シェープファイルに対し、マージする(ベクタ→データ管理ツール→ベクタデータのマージ)
- マージしたシェープファイルに対し、レイヤを融合する(ベクタ→空間演算ツール→融合)
これだけで可能です。

今回はこの南禅寺の塔頭を囲んだ複数シェープを融合して、一つのレイヤにしてみます。

融合されている(テーブル情報も先頭に集約されてしまうので注意)
複合レイヤを全部まとめて手動で移動したい
複合レイヤとは一つのシェープファイルに複数のレイヤ(テーブル行)を持ったレイヤのことで、デジタイズツールで移動しようとすると、各レイヤごとに移動してしまい、逐一指定の位置に移動させるのが面倒になります。その場合は、レイヤを全選択してから移動するといいです。
1.任意のシェープ(複合レイヤ)を選択し、すべての地物を選択アイコン(三行目の黄色い3行線)をクリック
2.デジタイズツールの移動ツールでレイヤを移動させる
- 指定の位置まで移動したら、全選択を解除する(全レイヤの選択を解除)。この動作を怠ると、再度移動させようとしたときに、適切なレイヤが選択されません。
複数シェープをまとめて移動する場合
複数シェープをまとめて移動する場合は対象シェープを選択し、その状態から編集モードを切り替え、そしてシングルクリックによる地物選択を用いて選択範囲をドラッグして囲む、あるいはShiftボタンを押した状態でシェープをクリックして追加していき、後は移動させるだけです。
この動作には「Operate Multi Layers」というプラグインのインポートが必須となります。

手順3:ドラッグで、対象シェープを赤枠で覆う(Ctrl+クリックで一つずつ追加していく方法もあります。不要なシェープはもう一度クリックすれば解除されます)

手順4:高度なデジタイズツールから、まとめてレイヤを移動させることができる
マルチパートを持った単一レイヤをパーツ(断片)単位で再編集したい
マルチパートとは複数のポリゴン断片のことで、これを融合すると単一レイヤとなってしまうので、その断片だけを編集することができなくなります。
それを解決するにはプロセッシングツールのベクタジオメトリから「マルチパートをシングルパートに変換」を選択し、対象のレイヤを実行します。そうすれば分断されたパーツ(断片)ごとに複合レイヤのシェープファイルとなるので、それぞれに対して再編集が可能となります。
編集が終わって元に戻したい場合は、再度融合させるだけです。
XYの座標や緯度経度情報をCSVでインポートするだけで、ポリゴンを作成する
データソースマネージャを用いた方法だとマルチポイントにしか選択できないですが、これをポリゴン化させるプラグイン「Point2one」があるので、それを活用すれば簡単にポリゴン(ポリライン)を作成できます。
ちなみに 使用するデータが緯度経度ではなく座標の場合は、X値とY値が逆転するので、その場合は参照カラムを入れ換えておきましょう。
ポリラインをポリゴン化できない
ポリライン(線)をポリゴン(図形)にするには、プロセッシングツール→ベクタジオメトリ→線をポリゴンに変換を使用するのですが、よく「失敗しました」と表示され、ポリゴン化できない現象が起こります。

図1:左側が失敗メッセージ(キャンパス領域をポリゴン化しようとして失敗)
原因を検索すると判で押したように「ポリゴンは最低3点の頂点がないと作れない」という文言ばかり出てきますが、全く実務に即した説明にはなっていないです。簡単にいえばポリゴン化できない理由はポリラインとしてつながっていない(一筆書きで任意の頂点を周回できない、すなわちそれはポリラインではなく、ただのラインとなっている)、それを縮小画面ではつながっているように錯覚してしまっている、ただそれだけの理由です。また、始点と終点のラインがつながっていなくても、間に囲まれて隙間のない領域が存在していれば、それはポリゴン化可能です(はみ出た部分が対象外となります)。

図2:つながっていないポリライン(のつもりで描画したもの)。拡大すると途切れていたりする。
なので、地図を拡大し、ラインの途切れている部分を見つけ微妙に途切れた部分を修復して、始点から終点まで一筆書きできるようにつなげてあげましょう。そして、この作業においては、プロジェクト→スナップオプションを利用することで、つなぐのが簡単になります。

図4:スナップの設定画面より磁石アイコンにチェックを入れてスナップを有効に、頂点領域を0.50、交点でスナップを選択する。
レイヤ選択ツールの頂点ツールを使って途切れた部分を拡大し、その近傍にある+の目印をクリックし、あとはつなげたい対向の頂点につなげに行くだけです。対象の頂点が見つかれば、先程のスナップ機能によって頂点が赤枠で囲まれて表示されます。

図5:+にフォーカスすると末端の頂点から交点までの延長線をトレースしてくれるようになる
図6:スナップオプションが有効になると、次の交点が赤い四角でフォーカスされる(先程の0.5はそれを有効にキャッチする範囲)。そのタイミングでENTERキーをクリックすると、トレースされた延長線がきちんとつながってくれる。
これでポリラインとなったので、再度ポリゴン化を実行すれば、きちんとポリラインに沿ってポリゴンが生成されます。

図7:左側のエラーメッセージがなくなって、ポリゴンが生成される
※失敗してもレイヤは作成されているので、作業損じのレイヤは削除しておきましょう。
この条件は複合レイヤであった場合でも起きます。なので、ポリゴン化できない場合は書き損じたレイヤの断片などもシェープに混じっていないか調べておきましょう。
ジオリファレンサーの地図が合わない
調査データの地図とQGIS上のオーバーレイヤ(地図)を照合させる場合は、ジオリファレンサーを用いることが多いです。
ただ、ジオリファレンサーはあくまで最低3点の位置を合わせるだけであって、歪み調整までは対応していません。したがって、QGIS上の地図を画像化し、それを背景として、シェープを貼り合わせたい、作成したい調査地図を画像編集ソフトなどで歪みを調整し、地図に合った形にして変えておく必要があります。
レイヤのフォーカスがうまくいかない
レイヤのフォーカスは単一シェープなら、そのシェープを指すだけですが、複合レイヤの場合はその複合レイヤの中心点にフォーカスされる仕様となっています。
したがって、その複合レイヤ内に、制作ミスしたEPSG違いのレイヤをそのまま残しておいたりすると、いざレイヤをフォーカスした際に、適切なレイヤにフォーカスされなくなります。
その場合は、属性テーブルからレイヤごとにフォーカスして確認し、不要な失敗レイヤを削除しましょう。
座標/緯度経度情報と座標系の相関がわからない
データソースマネージャを使用してCSVなどからシェープをインポートした場合、どの座標系を使用したらいいのか困ったことはないでしょうか。
| 名称 | EPSG | X | Y | 備考 |
|---|---|---|---|---|
| 日本測地系(JGD)) | 2443~2461、6669~6687 | -999999 | -99999 | 旧と新。xy座標が入れ替わるので注意 |
| WEBメルカトル | 3857 | 99999999 | 9999999 | 世界全体を座標で見ている。xy座標が入れ替わるので注意 |
| 地理座標系 | 4326 | -90~90 | -180~180 | 緯度経度で表記(西経、南緯がマイナス) |
| 地理座標系 | 4612 | -90~90 | -180~180 | 緯度経度で表記(西経、南緯がマイナス) |
そして、これを間違うと、レイヤをフォーカスした際に真っ白な部分(存在しない地図領域)に飛ばされてしまいます。こうなると、なかなか地図が帰ってきません。
解決させる方法は正しい場所をフォーカスしてあげること、または再度開き直すことです。











