[general]
name=Mapdex for QGIS
description=Nivo AI assistant for QGIS: ask questions about your layers and PostGIS in plain language, get measured spatial analysis on the map, run Processing, and georeference or digitize scanned maps with Mapdex. Includes an AI vectorizer that traces lines on a scanned map as you follow them, running entirely on your machine.
version=0.12.2
qgisMinimumVersion=3.34
qgisMaximumVersion=4.99
supportsQt6=True
author=Mapdex
email=support@mapdex.ai
about=Mapdex for QGIS adds Nivo, an AI GIS assistant that works from your map. Ask in plain language, in any language, and Nivo measures the answer instead of guessing it: profile a layer, compute statistics and distributions, break down categories, rank features, flag outliers with a stated rule, aggregate by group, and compare a selection against the whole dataset. Spatial results land on the canvas as a real feature selection or a categorized/graduated renderer, so you can see the analysis rather than read about it. It queries saved PostGIS connections read-only through typed, parameterised queries - you never write SQL, and no SQL is generated by a model. It also inspects and styles layers, previews reversible filters you can undo, resolves and runs installed QGIS Processing algorithms after confirmation, and sends Mapdex georeference, parcel digitization, validation or full-pipeline tasks, adding completed raster or vector results back as QGIS layers. The Mapdex toolbar also carries an AI vectorizer for digitizing scanned maps: click a drawn line and it traces along it ahead of your cursor, click again to keep that stretch, Shift-click for a straight segment where you want one, Ctrl+Z to take one back. The traced shape goes into the layer you are editing, with its attribute form and your undo history. Where the drawn line is too broken to follow it says so rather than inventing geometry across the gap. This part runs entirely inside QGIS: the scan is read from the layer already open in your project and never uploaded, there is no per-stroke round trip to a server, and it needs no Mapdex account and no credits, so it can be used on archives that are not allowed to leave your network. Review of flagged features happens in the browser. Every action comes from a closed capability registry: no arbitrary Python, no arbitrary SQL, and consequential steps always ask first. You can store your own model key (OpenAI, Anthropic, Gemini, any OpenAI-compatible endpoint, or a local Ollama) in the encrypted QGIS Authentication Manager. With one configured the assistant talks to that provider directly from QGIS and the turn does not pass through Mapdex servers, so no Mapdex account is needed to ask about your own layers; if your provider fails you are asked before anything is sent to Mapdex instead. In that mode Nivo can do everything QGIS and your saved PostGIS connections do locally, but it cannot start Mapdex georeferencing, digitization or validation from the conversation - those run on Mapdex and stay with your account. Mapdex processing requires a Mapdex account: the plugin opens your browser once to authorize this QGIS installation, and the token is stored in the QGIS Authentication Manager. Needs network access to your Mapdex endpoint (mapdex.ai by default, configurable for self-hosted installs). No external Python packages are required beyond the QGIS standard runtime; works on Windows, Linux and macOS, with Qt5 (QGIS 3.34+) and Qt6 (QGIS 4).
icon=icon.png
tags=ai,ai assistant,nivo,copilot,llm,chatgpt,natural language,spatial analysis,analysis,statistics,postgis,sql,database,attribute table,symbology,styling,selection,processing,georeferencing,digitizing,vectorization,tracing,livewire,cadastre,raster,vector,web service
category=Web
experimental=False
deprecated=False
homepage=https://mapdex.ai/qgis
tracker=https://github.com/MapdexAI/mapdex-qgis/issues
repository=https://github.com/MapdexAI/mapdex-qgis
changelog=0.12.2
    - What you trace now looks like QGIS digitizing: the rubber band takes its
      colour and width from Settings > Digitizing instead of a hardcoded blue
      that matched neither your settings nor your map, an area being traced is
      drawn as an area with a fill, and the vertices are marked.
    - The tool says how the shape ends, on every message rather than once when
      you start, and it tells you a click will close an area BEFORE the click
      does it.
    - Fixed: rubber bands were emptied but never taken off the canvas, so every
      arm and disarm left one behind for the rest of the session.
    0.12.1
    - The tracer traces into whatever layer you have selected, and nothing
      else. It no longer asks which geometry you meant or creates a layer of
      its own: pick the layer you are digitizing into, pick the tracer, and it
      starts editing that layer for you.
    0.12.0
    - Shared boundaries are reused instead of traced twice. Where the edge you
      are following has already been digitized, the tracer follows that
      geometry, so the two parcels share the same edge rather than two
      near-identical ones a few pixels apart. That is where slivers and
      overlaps came from.
    - Your QGIS snapping now applies. A click that lands on an existing vertex
      or edge stays exactly there, and is not nudged onto the ink afterwards.
    - Areas close themselves. Click near where the shape started and the ring
      closes on that exact vertex and finishes.
    - The tracer asks where the shapes should go before it arms: it offers to
      start editing the layer you have selected, and asks whether you are
      tracing lines or areas when no layer can answer. It used to default to a
      line in silence, or put your work in a scratch layer you did not choose.
    - Fixed: taking back the only stretch in a shape left the next one starting
      from the point you had just removed.
    0.11.4
    - The tracer icon now has a light and a dark variant, chosen from the
      actual interface palette rather than from a theme name, so it stays
      visible on Night Mapping, on a custom theme, and when the operating
      system darkens QGIS on its own.
    - The plugin description and About text now mention the vectorizer.
    0.11.3
    - The tracer has its own toolbar icon. It shared the Mapdex mark with the
      panel button beside it, so the only way to tell the two apart was to
      hover over them.
    0.11.2
    - Ctrl+Z now takes back the last traced stretch while you are tracing, and
      Ctrl+Shift+Z puts it back. It could not before: QGIS undo is a main-window
      shortcut and took the key first, so pressing it mid-shape undid a feature
      you had finished earlier instead. The tracer holds the key only while the
      canvas is armed and gives it straight back.
    - Backspace and Delete do the same thing, as they do elsewhere in QGIS.
    - Escape is two steps: the first abandons the shape you are drawing and
      leaves the tracer on, the second closes the tracer.
    - Undo with nothing traced in the current shape says so rather than
      reaching back into your finished features.
    0.11.1
    - The tracer stayed armed only until you finished a shape. Digitizing is a
      hundred shapes in a row, so it now stays on until you press Escape or the
      button.
    - Ctrl+Z removes a traced feature: it is added as one edit command instead
      of outside the undo stack.
    - The attribute form opens after a trace, the way every other QGIS
      digitizing tool does, honouring the suppress setting if you turned it off.
      Layer field defaults are applied.
    - Zooming or panning mid-trace no longer leaves the preview following a
      line that has moved out from under the cursor.
    0.11.0
    - Vectorize with Mapdex: trace lines and areas on a scanned map instead of
      clicking along them. Click a drawn line and the tool follows it ahead of
      the cursor; click again to keep that stretch. Shift-click puts in a
      straight segment where the trace is wrong, Backspace removes the last
      stretch, Enter finishes. The shape goes into the layer you are editing,
      or becomes a new layer when you are not editing one.
    - It runs on your machine. The scan is read from the layer already open in
      QGIS and searched locally, so nothing is uploaded, there is no per-stroke
      round trip, and it works on archives that may not leave your network. No
      Mapdex account and no credits are needed to use it.
    - When a drawn line is too broken to follow, the tool says so and offers
      the straight segment rather than silently inventing one across the gap.
    - Mapdex now has its own toolbar with the panel and the tracer as separate
      buttons, instead of a single icon on the shared Plugins toolbar. Show or
      hide it under View > Toolbars.
    - Tracer settings (Web > Mapdex > Tracer settings): snap distance, how wide
      a gap to bridge, smoothing, the ink-contrast floor, and light-on-dark
      sheets.
    0.10.3
    - The upload scan blocked the plugin over a false positive: the vendored nivo-gis commit sha (a 40-char hex string) read as a "high entropy secret". Split into four short fields that reassemble to the same sha; no provenance data changed.
    0.10.2
    - QGIS 4 Ready: scoped every PyQt6 enum the repository check flagged (QgsFeatureRequest.Flag.NoGeometry, QgsWkbTypes.GeometryType.*) and removed a raw PyQt5/PyQt6 import that must come only from qgis.PyQt.
    0.10.1
    - Your own model key is now used. With a provider configured the assistant talks to it directly from QGIS: the turn does not pass through Mapdex servers, and it needs no Mapdex account. A local Ollama keeps the whole conversation on your machine.
    - In that mode Nivo does everything QGIS and your saved PostGIS connections do locally. Mapdex georeferencing, digitization, validation, batch and review run on Mapdex, so they are not offered inside a conversation that never contacts Mapdex; they still work from the task panel with your account.
    - A provider failure never becomes a Mapdex request on its own. You are told what failed and asked whether to send the question to Mapdex instead; nothing is sent unless you say yes.
    - The Model field now shows the default it would use for the chosen provider, instead of the word "default".
    0.10.0
    - Nivo can now analyse your data, not just drive the map: layer profiles, descriptive statistics, histograms, category breakdowns, ranking, outlier detection with a stated rule, group-by aggregation and selection-vs-dataset comparison.
    - Analysis lands on the map: results become a real feature selection or a categorized/graduated renderer with a legend that states how its classes were derived.
    - Read-only PostGIS analytics in natural language. Your question becomes a typed request that trusted code turns into a parameterised SELECT; no SQL is generated by a model, and writes are refused.
    - Multi-step objectives: Nivo inspects before it decides, chains the steps an answer needs, and reports what it measured. A step it could not complete is stated, not dropped.
    - Store your own model key: OpenAI, Anthropic, Gemini, any OpenAI-compatible endpoint or a local Ollama. Keys live only in the QGIS Authentication Manager and are never echoed back. The assistant still runs through Mapdex on your plan; a stored key is not yet used to reach that provider directly.
    - Undo for reversible map changes: selection, visibility, opacity, filters, labels and symbology restore their previous state.
    - Distances respect the layer CRS. A metric distance on a geographic layer is never silently applied in degrees.
    - Fix: a greeting before a request ("selam, aktif katmana git") no longer drops the turn into a generic workflow failure.
    0.9.13
    - Add Nivo, the QGIS companion chat for active-layer context, reversible map actions and confirmed Processing operations.
    - Add optimized Nivo avatar and loading animation assets to the dock.
    0.9.12
    - Clean the plugin repository scan: lint policy, narrowed exception handling, no silent notice drops.
    0.9.11
    - Released builds are pinned to mapdex.ai; endpoint fields are development only.
    0.9.10
    - Zoom to an imported result in the canvas CRS instead of jumping across the world.
    0.9.9
    - Fix a QGIS crash caused by background tasks reporting back after unload.
    0.9.8
    - Stop leaking a QGIS layer-change callback on every plugin reload.
    0.9.7
    - Fix a QGIS 4 start-up crash in the responsive panel layout.
    0.9.6
    - Get result from Mapdex: import the approved layer, or the draft split into review layers.
    - QGIS 4 (Qt6) fix for the review confirmation dialog.
    0.9.5
    - Panel opens wide enough to use and adapts to a narrow dock.
    - Plugin icon and Qt6 support declared for QGIS 4.
    0.9.4
    - Batch tasks resume after QGIS is restarted.
