Ga naar inhoud
AI Agent
QGIS
Gids

ChatGPT voor QGIS: wat kan het wel en niet? Getest

Gepubliceerd op

Ja, ChatGPT kan PyQGIS-code voor je schrijven, en bij simpele klussen werkt die code vaak in één keer. Maar ChatGPT ziet je project niet en kan er niets in uitvoeren. Het raadt dus je lagen en je coördinatenreferentiesysteem, en als die gok fout is, kan het script zonder foutmelding eindigen en toch de verkeerde kaart opleveren.

Ik heb dat getest op 27 september 2026. Ik gaf GPT-5.5 van OpenAI drie QGIS-taken, getypt zoals de meeste mensen ze in een chat typen, en draaide elk script dat het teruggaf in QGIS 3.44 met echte open data van Annecy in Frankrijk. Twee scripts klopten al bij het eerste antwoord. Het derde draaide zonder problemen en exporteerde een afdruklay-out met een lege kaart.

Drie geëxporteerde A4-afdruklay-outs met de titel Schools in Annecy. Antwoord 1: een titel, een legenda met Ecole, Collège en Lycée, een zwarte schaalbalk die over de rechterrand loopt en een noordpijl, maar het kaartframe is leeg. Antwoord 2: de wijken en de gekleurde scholen verschijnen, maar de onderkant van de stad valt van de pagina af. Antwoord 3: de hele stad past, maar klein getekend in de linkerhelft van de pagina.
Hetzelfde verzoek voor een afdruklay-out, na één, twee en drie antwoorden van de chatbot. Geen van de drie gaf een foutmelding.

Wat ChatGPT kan doen voor een QGIS-gebruiker

ChatGPT is een chatbot: je typt in een browsertabblad en het antwoordt met tekst. Voor QGIS is die tekst meestal PyQGIS, de Python-interface van QGIS, die je plakt in de Python-console (Plug-ins > Python-console). Claude en Gemini werken op dezelfde manier. Ben je nieuw met de console, dan laat onze PyQGIS-gids zien waar scripts draaien.

Op die manier gebruikt is een chatbot goed in veel van het saaie werk in QGIS:

  • Een script schrijven dat je hergebruikt, zoals dezelfde buffer of clip op vijftig bestanden.
  • Een foutmelding uitleggen die je terugplakt uit de console.
  • Een QGIS-expressie schrijven voor de veldberekening of een op regels gebaseerde stijl.
  • Vertellen welk Processing-algoritme wat doet, en welke parameters het heeft.

Proberen kost niets, en voor een GIS-gebruiker die wat Python kent is het een echte tijdwinst. De adder onder het gras zit in de manier waarop het werkt.

Wat het niet kan: je project zien of aanraken

Een chatbot in een browsertabblad ziet QGIS nooit. Hij kent de namen van je lagen niet, je velden niet, je coördinatenreferentiesysteem (CRS) niet en ook niet wat er op de kaart staat. Hij kan zijn eigen code niet uitvoeren en het resultaat niet bekijken. Jij bent degene die plakt, draait en controleert.

Elk script wordt dus blind geschreven, en het model vult de gaten met gokken. In mijn test gokte het twee keer goed en één keer slecht, en de slechte gok leverde helemaal geen foutmelding op.

De test: drie taken, de prompt die de meeste mensen schrijven

Ik koos drie taken van oplopende moeilijkheid en schreef vóór elke run op hoe een goed resultaat eruitziet. De data is open: de zes wijken van Annecy uit de geo-API van de Franse overheid, de 86 scholen van de stad uit het nationale schoolregister (55 basisscholen, 21 collèges en 10 lycées, de Franse middelbare scholen) en een hoogtemodel van Copernicus met 30 m resolutie.

Elke prompt was één regel, "I use QGIS 3.44. Write PyQGIS code I can paste into the QGIS Python console", gevolgd door de taak, zonder beschrijving van de lagen. Als een script stukging of de uitvoer er fout uitzag, plakte ik terug wat ik zag, tot drie antwoorden per taak. Daarna gaf ik dezelfde drie zinnen aan AI Agent, de agentplugin die wij bouwen, in hetzelfde project.

TaakChatGPT (GPT-5.5)AI Agent in QGIS
86 scholen 300 m bufferen, overlappen samenvoegen, opslaan, oppervlakte gevenGoed bij antwoord 1: 1.472 ha afgedrukt, 1.469 ha bij mijn hermetingGoed bij bericht 1: 1.472 ha, 20 s
Het hoogtemodel clippen op de wijk Annecy-le-Vieux, min, max en gemiddelde gevenGoed bij antwoord 1: 419 m, 1.165 m, 575 mGoed bij bericht 1, dezelfde waarden, 24 s
Afdruklay-out: scholen per type, titel, legenda, schaalbalk, noordpijl, pdfLege kaart bij antwoord 1, afgesneden kaart bij antwoord 2, bruikbaar bij antwoord 3Goed bij bericht 1, 51 s

Elk antwoord van de chatbot kwam na 23 tot 41 seconden binnen, en dat is vóór het plakken, draaien en openen van de pdf. De tijden van AI Agent zijn inclusief de uitvoering in QGIS.

Waar het misgaat: code die draait en toch fout is

De afdruklay-out is de taak die het probleem laat zien. Het eerste script van ChatGPT maakte de lay-out, gaf de scholen een opmaak, voegde alle gevraagde onderdelen toe en drukte "Exported layout" af. De pdf had een titel, een legenda, een noordpijl en een leeg kaartframe.

De oorzaak is het CRS. Mijn lagen staan opgeslagen in graden (EPSG:4326), maar het project tekent de kaart in meters (EPSG:3857), en dat krijg je als een OpenStreetMap-basiskaart de eerste laag is die je toevoegt. Het script nam het bereik van de lagen in graden en gaf dat aan een kaart in meters. De kaart zoomde daardoor in op een stukje open zee voor de kust van West-Afrika, minder dan een meter breed. De chatbot kon het project-CRS niet kennen, want ik had het niet verteld en hij kan het niet opzoeken. In onze uitleg over wat een CRS is lees je waarom die mismatch zo vaak voorkomt.

Toen ik de lege pdf beschreef, vond het tweede antwoord de oorzaak meteen en herstelde het bereik. De kaart verscheen, maar het frame werd 281 mm hoog op een pagina van 210 mm, waardoor het zuiden van de stad van de pagina viel. Het derde antwoord was geen compleet script. Het was een blok om over een deel van het tweede script te plakken, wat prima is als je Python leest en makkelijk misgaat als je dat niet doet.

Na drie antwoorden was de lay-out bruikbaar maar klein, met de stad over ongeveer een derde van de pagina.

De twee die werkten, deden dat deels bij toeval

Het buffer-script was netjes. Het koos een metrisch CRS op basis van de ligging van de laag (UTM-zone 32N), maakte de buffers, voegde ze samen en sloeg ze op, en de oppervlakte week binnen 0,2% af van de mijne.

Het clip-script gaf ook de goede getallen, maar kijk hoe het de wijk vond. Het wist niet welke laag de wijken bevat of welk veld de namen, dus het las elk tekstveld van elke laag en stopte bij de eerste waarde die "Annecy-le-Vieux" bevatte. In deze data bevatten 11 van de 86 schoolnamen ook "Annecy-le-Vieux". Het koos de wijk alleen omdat QGIS de wijkenlaag toevallig vóór de scholenlaag toonde. Geef de lagen andere namen en hetzelfde script kan een school pakken in plaats van de wijk.

Zo gaat het met een chatbot die je project niet kan zien. De code is vaak verstandig, maar rust op gokken, en pas als je de uitvoer zelf controleert merk je welke gok fout was. Onze eerdere test in de PyQGIS-gids vond hetzelfde bij een andere chatbot: beschrijf je lagen, velden en CRS in de prompt, en de resultaten werden veel beter.

Een agent in QGIS doet de controle voor je

We bouwen AI Agent, dus dit deel gaat over onze eigen plugin. Het is een chatpaneel in QGIS. Het leest het project voordat het iets doet, voert de QGIS-gereedschappen zelf uit en bekijkt het resultaat. Er is dus geen code om te plakken en geen project om te beschrijven.

Met dezelfde drie zinnen had het alle drie goed bij het eerste bericht. Bij de clip laat het logboek zien dat het eerst de wijkenlaag las, de ene polygoon op naam haalde en pas daarna clipte. Bij de lay-out bouwde het de kaart in Lambert-93, labelde het de wijken en controleerde het of elk onderdeel binnen de pagina lag.

QGIS met een OpenStreetMap-basiskaart van Annecy en het meer, met de wijk Annecy-le-Vieux geclipt uit het hoogtemodel in grijstinten en de schoolpunten in roze. Het paneel van AI Agent rechts meldt dat het de dem op de polygoon van Annecy-le-Vieux heeft geclipt en opgeslagen, en noemt dan 26.676 geldige pixels met een minimum van 419,00 m, een maximum van 1.165,20 m en een gemiddelde van 574,55 m, de twee nieuwe lagen en 6 acties.
De clip-taak in AI Agent: één zin, de wijk op naam gevonden, het raster geclipt en de statistieken gegeven.

Perfect was het niet. Na de buffer-taak liet het een werklaag ("Schools UTM 32N") in het project staan, en in de lay-out tekende het de lycées in grijs en liet het de rechterhelft van de pagina grotendeels leeg. Maar het gaf me nooit een resultaat dat af leek en dat niet was.

Een A4-afdruklay-out in liggend formaat met de titel Schools in Annecy en de ondertitel 86 schools across six districts, Annecy, Haute-Savoie. De zes wijken zijn lichtblauw getekend met hun namen, de scholen als rode, oranje en grijze stippen, met een legenda voor Collège, Ecole en Lycée, een noordpijl, een schaalbalk van 2 km en een bronregel met Map CRS Lambert-93.
De lay-out van AI Agent uit dezelfde zin, bij het eerste bericht geëxporteerd naar pdf.

Het stuurt een beschrijving van je project (laagnamen, velden, CRS, bereik) naar een dienst in de EU, nooit je databestanden, en met één klik maak je een heel bericht ongedaan. Er is een Free-abonnement.

Probeer AI Agent gratis in QGIS, geen creditcard nodig

Wanneer gebruik je wat

Gebruik ChatGPT, Claude of Gemini in een browsertabblad als je code wilt die je bewaart en leest: een script om op veel bestanden opnieuw te draaien, een Processing-script, een expressie. Vertel het je QGIS-versie, laagnamen, veldnamen en het project-CRS, en controleer de uitvoer op de kaart, niet alleen in de console.

Gebruik een agent in QGIS, zoals AI Agent, als je het resultaat in je project wilt en geen tussenpersoon wilt worden die plakt, draait en beschrijft wat er misging. Dat geldt voor de meeste eenmalige taken: een buffer, een clip, een koppeling, een opgemaakte lay-out. Onze gids over AI-agents in QGIS vergelijkt de opties, en QGIS MCP is de route als je al in Claude Desktop of Cursor werkt.

Sommige QGIS-plugins zetten ChatGPT in een paneel, zoals QChatGPT, maar die is sinds juli 2023 niet bijgewerkt en heeft je eigen OpenAI-sleutel nodig. De QGIS AI-hub somt de tools op waar we nu naar zouden kijken.

Probeer AI Agent gratis in QGIS, geen creditcard nodig

Zo hebben we gemeten. Op 27 september 2026, in QGIS 3.44.7 op macOS, met de data van Annecy hierboven (project in EPSG:3857, lagen in EPSG:4326). De chatbot was GPT-5.5 van OpenAI, bereikt via de opdrachtregel van OpenAI Codex met een ChatGPT-account, met webzoeken en de shell uitgezet en zonder toegang tot QGIS. De systeemprompt is die van Codex, niet die van de ChatGPT-app, dus antwoorden in de app kunnen afwijken. Elk script is in de Python-console gedraaid precies zoals het werd teruggegeven, behalve het derde lay-outantwoord, dat ik op verzoek in het tweede script heb gevoegd. Een resultaat telde alleen als goed als een apart controlescript slaagde en de pdf er goed uitzag. Eén run van de chatbot is herhaald nadat we een installatieprobleem in onze test-QGIS hadden verholpen dat niets met de code te maken had. AI Agent 1.4.1 draaide met de standaardinstellingen. Drie taken is een kleine steekproef.

Veelgestelde vragen

Kan ChatGPT QGIS automatiseren?

Het kan de PyQGIS-code schrijven, en jij draait die in de Python-console. In onze test met drie taken klopten twee scripts de eerste keer en draaide één zonder foutmelding maar exporteerde het een lege kaart. ChatGPT kan zelf niets uitvoeren in QGIS, dus jij plakt, draait en controleert. Een agentplugin zoals AI Agent voert de stappen juist in QGIS zelf uit.

Kan ChatGPT mijn QGIS-project zien?

Nee. Het kent je laagnamen, velden en coördinatenreferentiesysteem niet, tenzij je ze intypt. Scripts die zonder die informatie zijn geschreven, gokken, en een foute gok kan een fout resultaat geven zonder foutmelding. Plak je laaglijst, velden en project-CRS in de prompt voor betere code.

Is er een ChatGPT-plugin voor QGIS?

Ja, een paar plugins koppelen QGIS aan de modellen van OpenAI met je eigen API-sleutel. QChatGPT wordt het meest gedownload, maar is sinds juli 2023 niet bijgewerkt. Nieuwere agentplugins lezen je project en voeren de gereedschappen zelf uit. Onze plugin AI Agent bevat het AI-model, dus je hebt geen API-sleutel nodig, en er is een Free-abonnement.

Waarom draait mijn PyQGIS-script van ChatGPT zonder fout, maar zie ik niets?

De meest voorkomende oorzaak is een CRS-mismatch: het script mat iets in graden en gebruikte dat in een kaart in meters, of andersom. Controleer het project-CRS rechtsonder in QGIS en vertel de chatbot welke het is. Opnieuw projecteren naar een metrisch CRS vóór het meten lost de meeste van deze gevallen op.