Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ign-argentina/argenmap/llms.txt

Use this file to discover all available pages before exploring further.

The data.json file is the heart of Argenmap’s layer system. It tells the viewer which base maps to offer in the basemap selector and which WMS/WMTS services to query for overlay layers. Every collapsible section in the layers panel is generated automatically from the service definitions you add here. The file lives at src/config/data.json; if it does not exist, Argenmap falls back to the defaults in src/config/default/data.json.
Any JSON syntax error in data.json — a missing comma, an unclosed bracket, a trailing comma — will cause Argenmap to stop loading or to render only partially. Always validate your JSON with a linter (VS Code, WebStorm, or a web validator such as jsonlint.com) before reloading the app.

Top-level structure

data.json has four top-level keys. Only items is required; the others are optional or legacy.
{
  "items": [
    {
      "type": "basemap",
      "capas": []
    },
    {
      "type": "wmslayer"
    },
    {
      "type": "wmts"
    }
  ],
  "layers_joins": [
    {
      "seccion": "...",
      "host": "...",
      "layer": "...",
      "joins": []
    }
  ],
  "template": "ign-geoportal-basic",
  "template_feature_info_exception": []
}
KeyDescription
itemsOrdered array of configuration blocks. The first block must be type: "basemap". Subsequent blocks define WMS/WMTS sections.
layers_joinsOptional array. Merges two layers from the same or different services into a single toggle button in the panel.
templateLegacy field kept for compatibility. Set to "ign-geoportal-basic" or leave as "".
template_feature_info_exceptionArray of WMS attribute names that should be suppressed in feature-info popups. Add exact attribute names as strings to hide them from the info panel when users click a layer.

Defining base maps

The first element of items must be a block with "type": "basemap". This container block holds metadata about the basemap group and a capas array with one object per individual base map. All base maps appear in the basemap selector at the bottom-left of the viewer.

Container block fields

type
string
required
Must be "basemap" for the first item in items. This tells Argenmap the block defines the basemap group.
nombre
string
Display name for the basemap group. Example: "Mapas base".
seccion
string
Internal identifier for the basemap group. Lowercase, no spaces or special characters. Example: "mapasbase".
short_abstract
string
Optional subtitle for the basemap group. Usually left as "".
class
string
Legacy field. Leave as "".
peso
number
Sort order weight for the basemap container block. Example: 1.

Individual basemap fields (capas[])

titulo
string
required
Display name shown in the basemap selector panel. Example: "Argenmap".
nombre
string
required
Internal identifier for the basemap. Use lowercase letters, digits, and underscores only — no spaces, accents, or special characters. Must be unique within capas. Example: "argenmap".
servicio
string
required
Tile service type. Use "tms" for TMS services (IGN GeoServer and most Argentine government services). For XYZ slippy-tile services (Esri, Here, OpenStreetMap), also use "tms" — the {y} vs {-y} placeholder in host controls the axis direction.
version
string
Protocol version string reported by the service. Example: "1.0.0". Used in TMS request URLs.
attribution
string
HTML attribution text rendered in the bottom-right corner of the map when this basemap is active. May contain anchor tags. Example: "<a href='https://www.ign.gob.ar/' target='_blank'>IGN</a> + OpenStreetMap".
host
string
required
Tile URL template. Must include {z}, {x}, and either {y} or {-y}. For IGN TMS services use {-y} (see tip below). Example: "https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/capabaseargenmap@EPSG%3A3857@png/{z}/{x}/{-y}.png".
legendImg
string
Path to a small thumbnail image (ideally 50 × 40 px) displayed next to the basemap name in the selector. Example: "src/styles/images/argenmap.png".
legend
string
Path to a full-size legend image opened when the user clicks “Ver leyenda del mapa”. Example: "src/config/styles/images/legends/argenmap.jpg".
peso
number
Vertical sort order within the basemap list. Higher values appear lower in the list. Values must be unique. Example: 10, 20, 30.
selected
boolean
Set to true on exactly one basemap to make it the default on first load. If omitted or false everywhere, Argenmap picks the first entry in the array.
zoom.min
number
Minimum zoom level available for this basemap (the viewer will not zoom out past this level when it is active).
zoom.max
number
Maximum zoom level available for this basemap.
zoom.nativeMin
number
Minimum zoom level for which the service has real tiles. Tiles outside this range are stretched or compressed by the browser.
zoom.nativeMax
number
Maximum zoom level for which the service provides native tiles. Tiles beyond this zoom are over-zoomed from the nearest available level.
isOpenWith
string[]
Optional array of WMS layer names (from any section in items) that will be automatically activated when this basemap is selected. Useful for hybrid views — for example, selecting a satellite imagery basemap can automatically enable a vector boundary overlay. Example: ["provincia_FA003"]. Leave as [] to activate no layers automatically.
IGN’s TMS services invert the {y} axis compared to the XYZ/slippy-tile convention. Use {-y} in the host URL for any TMS endpoint (e.g. wms.ign.gob.ar/geoserver/gwc/service/tms/…). For XYZ services such as Esri World Imagery or Here Maps, use the plain {y} placeholder. If tiles appear scrambled or mirrored vertically, switching between {y} and {-y} is the first thing to try.

Complete basemap example

The snippet below is taken directly from src/config/default/data.json and shows the default Argenmap basemap alongside the grey variant:
{
  "items": [
    {
      "type": "basemap",
      "peso": 1,
      "nombre": "Mapas base",
      "short_abstract": "",
      "class": "",
      "seccion": "mapasbase",
      "capas": [
        {
          "titulo": "Argenmap",
          "nombre": "argenmap",
          "servicio": "tms",
          "version": "1.0.0",
          "attribution": "<a href='https://www.ign.gob.ar/AreaServicios/Argenmap/IntroduccionV2' target='_blank'>Instituto Geográfico Nacional</a> + <a href='https://www.osm.org/copyright' target='_blank'>OpenStreetMap</a>",
          "host": "https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/capabaseargenmap@EPSG%3A3857@png/{z}/{x}/{-y}.png",
          "legendImg": "src/styles/images/argenmap.png",
          "peso": 10,
          "selected": true,
          "zoom": {
            "min": 3,
            "max": 21,
            "nativeMin": 3,
            "nativeMax": 21
          }
        },
        {
          "titulo": "Argenmap gris",
          "nombre": "argenmap_gris",
          "servicio": "tms",
          "version": "1.0.0",
          "attribution": "<a href='https://www.ign.gob.ar/AreaServicios/Argenmap/IntroduccionV2' target='_blank'>Instituto Geográfico Nacional</a> + <a href='https://www.osm.org/copyright' target='_blank'>OpenStreetMap</a>",
          "host": "https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/mapabase_gris@EPSG%3A3857@png/{z}/{x}/{-y}.png",
          "legendImg": "src/styles/images/argenmap-gris.png",
          "peso": 20,
          "zoom": {
            "min": 3,
            "max": 21,
            "nativeMin": 3,
            "nativeMax": 21
          }
        }
      ]
    }
  ],
  "template": "ign-geoportal-basic"
}

Defining WMS / WMTS sections

After the basemap block you can add as many WMS or WMTS service blocks as needed. Each block causes Argenmap to fetch the service’s capabilities document and render a collapsible section in the layers panel populated with that service’s layers.

Field reference

type
string
required
Block type. Use "wmslayer" for a WMS service or "wmts" for a WMTS service. The value "wms" is also accepted as a synonym for "wmslayer".
nombre
string
Section title displayed in the collapsible header in the layers panel. Example: "Industria y servicios".
short_abstract
string
Subtitle rendered below the section title. Example: "Industrias, producción agropecuaria, minería, energía, comunicaciones, etc.".
seccion
string
Internal identifier for this section. Lowercase, no spaces or special characters. Must be unique across all items. Used in layers_joins references. Example: "industria-servicios".
class
string
Legacy field. Leave as "".
servicio
string
Service protocol: "wms" or "wmts". Should match the type field.
version
string
OGC service version. Use "1.3.0" for WMS and "1.0.0" for WMTS.
host
string
required
Base URL of the OGC service. Do not append query parameters such as ?service=WMS, ?request=GetCapabilities, or ?version=1.3.0 — Argenmap builds and appends those automatically. Example: "https://wms.ign.gob.ar/geoserver/industria-servicios/wms".
peso
number
Vertical sort order for this section within the layers panel. Higher values place the section lower. Must be unique. Example: 70.
allowed_layers
string[]
Whitelist of layer names (exactly as they appear in the capabilities document) to show in this section. All other layers from the service are hidden. Omit the field entirely to show every layer the service publishes.
customize_layers
object
Overrides per-layer metadata fetched from the WMS capabilities document. Each key is a layer name and the value is an object with optional new_title, new_abstract, and new_keywords strings. Example:
"customize_layers": {
  "areas_de_fabricacion_y_procesamiento_AC070": {
    "new_title": "Areas Fabricacion",
    "new_abstract": "Areas Fabricacion",
    "new_keywords": "fabricacion"
  }
}
icons
object
Map of layer name → icon URL. Overrides the default layer icon for the specified layers. Example:
{
  "Centro": "src/config/default/styles/images/legends/satelite.svg"
}
tab
object
Groups this section under a named tab in the layers panel. See Tab grouping below.
feature_info_format
string
MIME type to request when the user clicks a layer for feature info. Example: "application/json". Defaults to "application/json" if omitted.

WMS example

{
  "type": "wmslayer",
  "peso": 70,
  "nombre": "Industria y servicios",
  "short_abstract": "Industrias, producción agropecuaria, minería, energía, comunicaciones, etc.",
  "class": "",
  "seccion": "industria-servicios",
  "servicio": "wms",
  "version": "1.3.0",
  "host": "https://wms.ign.gob.ar/geoserver/industria-servicios/wms"
}

WMTS example

{
  "tab": {
    "id": "Datos2",
    "searcheable": false,
    "content": "Datos2",
    "list_type": "combobox"
  },
  "type": "wmts",
  "peso": 20,
  "nombre": "Fotografías aéreas",
  "short_abstract": "Fotografías aéreas",
  "class": "",
  "seccion": "fotogrametria",
  "servicio": "wmts",
  "version": "1.0.0",
  "host": "https://imagenes.ign.gob.ar/geoserver/mosaicos_vuelos",
  "feature_info_format": "application/json"
}

Tab grouping

By default every WMS/WMTS section appears in a single flat list in the layers panel. The tab property on a service block assigns that section to a named tab, allowing you to organize many services into logical groups that users can switch between. All service blocks that share the same tab.id value are grouped under the same tab. The content string is used as the tab label. Define the tab once with searcheable: true if you want the panel’s search box to index layers in that tab.

Tab field reference

tab.id
string
Unique tab identifier. All blocks with the same id appear in the same tab. Example: "IG".
tab.content
string
Human-readable tab label shown in the panel UI. Example: "Info. Geoespacial".
tab.searcheable
boolean
When true, layers inside this tab are included in the panel search box results.
tab.list_type
string
Set to "combobox" to render the layers within this tab as a dropdown combo box instead of a standard checkbox list. When a tab contains many layers, the combobox presents them in a compact dropdown that the user selects from, rather than a scrollable list of checkboxes. Useful for services that publish large numbers of layers.

Tab grouping example

The following example (from tabs.json) groups four services into two tabs, where the second tab uses the combobox layout:
{
  "items": [
    {
      "type": "basemap",
      "seccion": "mapasbase",
      "capas": [
        {
          "titulo": "Argenmap",
          "nombre": "argenmap",
          "servicio": "tms",
          "version": "1.0.0",
          "host": "https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/capabaseargenmap@EPSG%3A3857@png/{z}/{x}/{-y}.png",
          "legendImg": "src/styles/images/argenmap.png",
          "peso": 10,
          "selected": true,
          "zoom": { "min": 3, "max": 21, "nativeMin": 3, "nativeMax": 21 }
        }
      ]
    },
    {
      "tab": { "id": "Datos1", "searcheable": true, "content": "Datos1" },
      "type": "wmslayer",
      "peso": 10,
      "nombre": "Industria y servicios",
      "short_abstract": "SECCION ORIGINAL",
      "class": "",
      "seccion": "industria-servicios",
      "servicio": "wms",
      "version": "1.3.0",
      "host": "https://wms.ign.gob.ar/geoserver/industria-servicios"
    },
    {
      "tab": { "id": "Datos1", "searcheable": true, "content": "Datos1" },
      "type": "wmslayer",
      "peso": 25,
      "nombre": "Asentamientos humanos",
      "short_abstract": "Asentamientos humanos de la República Argentina",
      "class": "",
      "seccion": "asentamientos-humanos",
      "servicio": "wms",
      "version": "1.3.0",
      "host": "https://wms.ign.gob.ar/geoserver/asentamientos_humanos"
    },
    {
      "tab": { "id": "Datos2", "searcheable": false, "content": "Datos2", "list_type": "combobox" },
      "type": "wmts",
      "peso": 20,
      "nombre": "Fotografías aéreas",
      "short_abstract": "Fotografías aéreas",
      "class": "",
      "seccion": "fotogrametria",
      "servicio": "wmts",
      "version": "1.0.0",
      "host": "https://imagenes.ign.gob.ar/geoserver/mosaicos_vuelos",
      "feature_info_format": "application/json"
    },
    {
      "tab": { "id": "Datos2", "searcheable": false, "content": "Datos2", "list_type": "combobox" },
      "type": "wmslayer",
      "peso": 50,
      "nombre": "Transporte",
      "short_abstract": "Aeropuertos, aeródromos, red vial, red ferroviaria, etc.",
      "class": "",
      "seccion": "transporte",
      "servicio": "wms",
      "version": "1.3.0",
      "host": "https://wms.ign.gob.ar/geoserver/transporte"
    }
  ],
  "template": "ign-geoportal-basic"
}

Merging layers

The layers_joins array lets you merge two layers from the same or different services into a single toggle button in the layers panel. When the user clicks the button, both layers are activated simultaneously — useful for compositing a raster imagery layer with a vector boundary overlay. Each entry in layers_joins identifies a primary layer (layer) in a given seccion, and a joins array containing one or more secondary layers that are activated together with it.
{
  "layers_joins": [
    {
      "seccion": "limites",
      "host": "https://wms.ign.gob.ar/geoserver/limites",
      "layer": "area_protegida_070115",
      "joins": [
        {
          "seccion": "limites",
          "host": "https://wms.ign.gob.ar/geoserver/limites",
          "layer": "provincia_FA003"
        }
      ]
    }
  ]
}
In this example, enabling area_protegida_070115 in the panel also activates provincia_FA003 as a background layer. The two layers appear as one button in the Límites section.

Excluding layers with allowed_layers

By default, when Argenmap fetches a WMS capabilities document it renders every layer that service advertises. Use allowed_layers to limit which layers appear in a section. This is the preferred approach when a service publishes dozens of layers but you only want to expose a few. The following example shows two blocks pointing at the same IGN WMS endpoint: the first shows every layer, the second restricts to exactly two:
{
  "items": [
    {
      "type": "basemap",
      "seccion": "mapasbase",
      "capas": [
        {
          "titulo": "Argenmap",
          "nombre": "argenmap",
          "servicio": "tms",
          "version": "1.0.0",
          "host": "https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/capabaseargenmap@EPSG%3A3857@png/{z}/{x}/{-y}.png",
          "legendImg": "src/styles/images/argenmap.png",
          "peso": 10,
          "selected": true,
          "zoom": { "min": 3, "max": 21, "nativeMin": 3, "nativeMax": 21 }
        }
      ]
    },
    {
      "type": "wmslayer",
      "peso": 70,
      "nombre": "Industria y servicios",
      "short_abstract": "Muestra todas las capas",
      "class": "",
      "seccion": "industria-servicios",
      "servicio": "wms",
      "version": "1.3.0",
      "host": "https://wms.ign.gob.ar/geoserver/industria-servicios"
    },
    {
      "type": "wmslayer",
      "peso": 70,
      "nombre": "Industria y servicios 2",
      "short_abstract": "Excluye capas — solo muestra las listadas en allowed_layers",
      "class": "",
      "seccion": "industria-servicios2",
      "servicio": "wms",
      "version": "1.3.0",
      "host": "https://wms.ign.gob.ar/geoserver/industria-servicios",
      "allowed_layers": [
        "areas_de_fabricacion_y_procesamiento_AC070",
        "puntos_de_extraccion_AA010"
      ]
    }
  ],
  "template": "ign-geoportal-basic"
}
Layer names in allowed_layers must match the Name attribute in the WMS capabilities document exactly, including capitalization.

Renaming layer metadata with customize_layers

Use customize_layers to override the title, abstract, or keywords that a WMS service reports for a layer, without modifying the service itself. This is useful when the capability document contains technical or abbreviated layer names that you want to present more clearly to end users. The following example (from renombrar_datos_capas.json) renames four layers from the IGN industry services WMS:
{
  "type": "wmslayer",
  "peso": 10,
  "nombre": "Industria y servicios - Editado",
  "short_abstract": "Capas con datos modificados",
  "class": "",
  "seccion": "industria-servicios2",
  "servicio": "wms",
  "version": "1.3.0",
  "host": "https://wms.ign.gob.ar/geoserver/industria-servicios",
  "customize_layers": {
    "areas_de_fabricacion_y_procesamiento_AC070": {
      "new_title": "Areas Fabricacion",
      "new_abstract": "Areas Fabricacion",
      "new_keywords": "fabricacion"
    },
    "puntos_de_comunicacion_AT010": {
      "new_title": "Antena de Puntos de comunicacion",
      "new_abstract": "Antena de Puntos de comunicacion",
      "new_keywords": "Antenas,comunicacion,puntos"
    },
    "puntos_de_extraccion_AA010": {
      "new_title": "Mina Extraccion",
      "new_abstract": "Puntos Extraccion",
      "new_keywords": "Puntos,Extraccion"
    },
    "puntos_de_energia_AD010": {
      "new_title": "Puntos de Energia",
      "new_abstract": "Puntos de Energia",
      "new_keywords": "Puntos,Energia"
    }
  }
}

Build docs developers (and LLMs) love