QGISでChatGPTは使える?3つの実タスクで検証
公開日
はい、ChatGPTはPyQGISコードを書けますし、簡単な作業ならそのコードが一発で動くことも多いです。ただしプロジェクトを見ることも、プロジェクト内で何かを実行することもできないため、レイヤや座標参照系を推測で補います。その推測が外れると、スクリプトはエラーなしで終わったのに地図が間違っている、という結果になります。
この検証は2026年9月27日に行いました。OpenAIのGPT-5.5に3つのQGISタスクを、チャットで普通に入力するのと同じ書き方で依頼し、返ってきたスクリプトをすべて、フランス・アヌシーの実際のオープンデータを使ってQGIS 3.44で実行しました。2つは最初の回答で正解でした。3つ目はエラーなしで動いたものの、空の地図が入った印刷レイアウトを書き出しました。

ChatGPTがQGISでできること
ChatGPTはチャットボットです。ブラウザのタブに入力すると、テキストで答えが返ってきます。QGISの場合、そのテキストはたいていPyQGIS、つまりQGISのPythonインターフェースのコードで、Pythonコンソール(「プラグイン」→「Pythonコンソール」)に貼り付けて使います。ClaudeやGeminiも同じ仕組みです。コンソールを初めて使う場合は、PyQGISガイドでスクリプトの実行場所を確認できます。
この使い方なら、チャットボットはQGIS作業の地味な部分をかなり肩代わりしてくれます。
- 繰り返し使うスクリプトの下書き:50個のファイルに同じバッファや切り抜きをかける作業など。
- エラーメッセージの説明:コンソールのエラーを貼り付けて意味を聞けます。
- QGISの式の作成:フィールド計算機やルールに基づくスタイル用の式です。
- プロセシングツールの役割とパラメータの確認。
試すのに費用はかからず、Pythonが少し分かるGIS利用者にとっては確かな時間節約になります。落とし穴は、その仕組みにあります。
できないこと:プロジェクトを見る、触る
ブラウザのタブにあるチャットボットは、QGISを一切見ていません。レイヤ名もフィールドも座標参照系(CRS)も、マップキャンバスに何が表示されているかも知りません。自分のコードを実行することも、結果を確認することもできません。貼り付け、実行、確認をするのは利用者自身です。
つまりスクリプトはすべて見えない状態で書かれ、モデルは分からない部分を推測で埋めます。今回の検証では、推測が当たったのが2回、外れたのが1回で、外れた推測からはエラーがまったく出ませんでした。
検証:3つのタスクと、多くの人が書くプロンプト
難しさが段階的に上がる3つのタスクを選び、実行前に正解の条件を書き出しました。データはすべてオープンデータです。フランス政府の地理APIから取得したアヌシーの6つの地区、全国学校一覧から取得した町の学校86校(小学校55、コレージュ21、リセ10)、そして解像度30mのCopernicus標高モデルです。
プロンプトはどれも1行で、「I use QGIS 3.44. Write PyQGIS code I can paste into the QGIS Python console」に続けてタスクを書き、レイヤの説明は加えませんでした。スクリプトが動かなかったり、出力がおかしかったりした場合は、見えた状況を貼り付けて返し、1タスクにつき最大3回答まで試しました。そのうえで、同じ3つの文を、同じプロジェクトで私たちが開発しているエージェントプラグインのAI Agentにも渡しました。
| タスク | ChatGPT (GPT-5.5) | QGIS内のAI Agent |
|---|---|---|
| 学校86校に300mのバッファを作り、重なりを結合して保存し、面積を出す | 回答1で正解:出力は1,472ha、再計測では1,469ha | メッセージ1で正解:1,472ha、20秒 |
| 標高モデルをアヌシー=ル=ヴューの地区で切り抜き、最小・最大・平均を出す | 回答1で正解:419m、1,165m、575m | メッセージ1で正解:同じ値、24秒 |
| 印刷レイアウト:学校の種別、タイトル、凡例、縮尺バー、方位記号、PDF | 回答1は地図が空、回答2は地図が切れ、回答3でようやく使える状態に | メッセージ1で正解、51秒 |
チャットボットの回答は1回あたり23〜41秒で届きますが、これは貼り付け、実行、PDFを開く時間を含みません。AI Agentの時間にはQGISでの実行が含まれています。
失敗する場所:動くのに間違っているコード
問題がはっきり出たのが印刷レイアウトです。ChatGPTの最初のスクリプトはレイアウトを作り、学校のスタイルを設定し、頼んだ要素をすべて追加して、「Exported layout」と表示しました。ところがPDFにあったのは、タイトル、凡例、方位記号と、空の地図フレームでした。
原因はCRSです。私のレイヤは度(EPSG:4326)で保存されていますが、プロジェクトの地図はメートル(EPSG:3857)で描画されています。OpenStreetMapのベースマップを最初に追加すると、こうなります。スクリプトは度で表されたレイヤの領域を、メートルで描画する地図に渡したため、地図は西アフリカ沖の公海にある、幅1メートルに満たない範囲にズームしていました。プロジェクトのCRSは私が伝えておらず、チャットボットには確認する手段もないので、知りようがなかったのです。このずれがなぜよく起きるのかは、CRSとは何かのガイドで説明しています。
空のPDFの状況を伝えると、2回目の回答はすぐに原因を見つけ、領域を修正しました。地図は表示されましたが、フレームの高さが281mmになり、高さ210mmのページからはみ出して、町の南側が切れてしまいました。3回目の回答はスクリプトではなく、2回目のスクリプトの一部に貼り替えるブロックでした。Pythonが読める人なら問題ありませんが、読めない人は間違えやすい方法です。
3回答を経て、レイアウトは使える状態になりましたが小さく、町がページの約3分の1にしか収まっていませんでした。
正解した2つも、運に助けられた面があった
バッファのスクリプトは見事でした。レイヤの位置から測定用のCRS(UTMゾーン32N)を選び、バッファを作成し、結合して保存し、その面積は私の計測と0.2%以内で一致しました。
切り抜きのスクリプトも正しい数値を出しましたが、地区をどう見つけたかを見てください。どのレイヤに地区があり、どのフィールドに名前があるかを知らないため、全レイヤの全テキストフィールドを読み、「Annecy-le-Vieux」を含む最初の値で止まっていました。このデータでは、学校86校のうち11校の名前にも「Annecy-le-Vieux」が含まれています。地区が選ばれたのは、たまたまQGISが学校レイヤより先に地区レイヤを一覧に並べていたからにすぎません。レイヤの名前や順序が違えば、同じスクリプトが地区ではなく学校を拾う可能性があります。
プロジェクトを見られないチャットボットは、こうなりがちです。コードは筋が通っていることが多いのに、推測の上に成り立っていて、どの推測が外れたかは自分で出力を確認して初めて分かります。PyQGISガイドで行った以前のテストでも、別のチャットボットで同じ結果でした。プロンプトにレイヤ、フィールド、CRSを書くと、結果は大きく良くなりました。
QGIS内のエージェントなら、確認まで任せられる
私たちはAI Agentを開発しているので、この節では自社のプラグインについて書きます。AI AgentはQGIS内のチャットパネルで、動く前にプロジェクトを読み取り、QGISのツールを自分で実行して結果を確認します。コードの貼り付けも、プロジェクトの説明も要りません。
同じ3つの文を渡したところ、3つとも最初のメッセージで正解でした。切り抜きのログを見ると、まず地区レイヤを読み、名前で対象のポリゴンを1つだけ抽出してから切り抜いています。レイアウトでは地図をランベルト93で作り、地区にラベルを付け、すべての要素がページ内に収まっているかを確認していました。

完璧ではありませんでした。バッファのタスクの後、作業用のレイヤ(「Schools UTM 32N」)がプロジェクトに残りました。また、レイアウトではリセを灰色で描き、ページの右半分がほとんど空いたままでした。それでも、完成して見えるのに間違っている結果を渡されることは一度もありませんでした。

AI Agentが欧州にあるサービスに送るのは、プロジェクトの説明(レイヤ名、フィールド、CRS、領域)だけで、データファイルは送りません。1回のメッセージで行った操作は、クリック1つでまとめて元に戻せます。無料プランもあります。
どちらを使うか
残しておきたい、読めるコードが欲しいときは、ブラウザのタブでChatGPT、Claude、Geminiを使ってください。たとえば、多数のファイルに繰り返し実行するスクリプト、プロセシングのスクリプト、式などです。QGISのバージョン、レイヤ名、フィールド名、プロジェクトのCRSを伝え、コンソールだけでなく、地図上で出力を確認してください。
結果をそのままプロジェクトに欲しく、貼り付けて実行して、うまくいかなかった点を説明する橋渡し役にはなりたくない場合は、AI AgentのようなQGIS内のエージェントを使います。バッファ、切り抜き、結合、スタイル付きレイアウトなど、単発の作業の多くがこれに当たります。選択肢の比較はQGISのAIエージェントのガイドにあり、すでにClaude DesktopやCursorで作業しているならQGIS MCPが使えます。
QGISにはQChatGPTのように、ChatGPTをパネルに組み込むプラグインもありますが、2023年7月から更新されておらず、自分のOpenAIキーが必要です。今おすすめできるツールはQGIS AIハブにまとめています。
検証の方法:2026年9月27日、macOS上のQGIS 3.44.7で、上記のアヌシーのデータ(プロジェクトはEPSG:3857、レイヤはEPSG:4326)を使いました。チャットボットはOpenAIのGPT-5.5で、ChatGPTアカウントでOpenAIのCodexコマンドラインから利用し、Web検索とシェルを無効にして、QGISへのアクセスもない状態にしました。システムプロンプトはChatGPTアプリのものではなくCodexのものなので、アプリでは回答が異なる場合があります。各スクリプトは返ってきたままPythonコンソールで実行しましたが、レイアウトの3回目の回答だけは、指示どおり2回目のスクリプトに差し込みました。結果が正解と認められるのは、別の確認用スクリプトが通り、PDFの見た目も正しい場合のみです。テスト用QGISの環境の問題(コードとは無関係)を直したため、チャットボットの実行を1回やり直しました。AI Agentはバージョン1.4.1を既定の設定で実行しました。3タスクというのは小さなサンプルです。
よくある質問
ChatGPTでQGISを自動化できますか?
PyQGISコードを書いてもらうことはでき、実行はPythonコンソールで行います。3タスクの検証では、2つのスクリプトは最初から正解でしたが、1つはエラーなしで動いたのに空の地図を書き出しました。ChatGPT自身はQGIS内で何も実行できないため、貼り付け、実行、確認は利用者の作業です。AI Agentのようなエージェントプラグインなら、各ステップをQGIS内で実行します。
ChatGPTはQGISのプロジェクトを見られますか?
いいえ。レイヤ名、フィールド、座標参照系は、入力しない限り分かりません。その情報なしに書かれたスクリプトは推測で動くため、推測が外れるとエラーメッセージなしに間違った結果が出ることがあります。プロンプトにレイヤの一覧、フィールド、プロジェクトのCRSを貼り付けると、より良いコードが得られます。
QGIS用のChatGPTプラグインはありますか?
はい、ご自身のAPIキーでQGISとOpenAIのモデルをつなぐプラグインがいくつかあります。ダウンロード数が最も多いのはQChatGPTですが、2023年7月から更新されていません。新しいエージェント系プラグインは、プロジェクトを読み取り、ツールを自分で実行します。私たちのAI Agentには、AIモデルが含まれているのでAPIキーは要らず、無料プランもあります。
ChatGPTのPyQGISスクリプトが動くのに何も表示されないのはなぜですか?
最も多い原因は座標参照系のずれです。スクリプトが度で測った値を、メートルで描画する地図で使った、あるいはその逆、というケースです。QGIS右下でプロジェクトのCRSを確認し、チャットボットに伝えてください。測定の前に、メートル単位のCRSへ再投影すると、こうした問題の多くは解決します。


