Skip to content

Límites de los cantones ​

Archivo: data/canton-boundaries.json. El límite de cada uno de los 162 cantones judiciales como geometría GeoJSON, tal como lo digitalizó el NGI (Institut géographique national / Nationaal Geografisch Instituut, el instituto geográfico nacional de Bélgica) a partir del anexo del Code judiciaire (Gerechtelijk Wetboek).

Para qué sirve ​

  • El cantón de una dirección en una ciudad dividida. 55 cantones cubren solo parte de un municipio (Antwerpen, Gent, Brussel, Luik, Charleroi, …), y getCantonsForMunicipality solo puede enumerar los candidatos. Con la dirección geocodificada, findCantonsAt(lon, lat) da el único cantón, y por tanto la justice de paix (vredegerecht).
  • Mapas. La geometría es GeoJSON estándar en WGS 84: dibuja los cantones en un mapa, crúzalos con otros datos geográficos o cárgalos en PostGIS, QGIS o una hoja de cálculo con mapa.
  • Contrastar el texto legal. Los polígonos del NGI son una segunda lectura del mismo anexo, junto al texto territory de cada cantón.

Prevalece el texto legal

El límite es la interpretación que hace el NGI del anexo del Code judiciaire, digitalizada sobre los límites catastrales de los municipios, los cursos de agua y las carreteras. El propio anexo, citado literalmente en el territory de cada cantón, es la ley. Para un punto cercano a una línea de límite, lee el texto; nombra las calles y los números de las casas.

Fuente y actualizaciones ​

FuenteNGI, Judicial cantons and arrondissements (Territorial Divisions) en geo.be: el GeoPackage en WGS 84 (EPSG:4326), feature type judicialcanton, revisado el 16 de julio de 2026
Licencia© NGI, CC BY 4.0
Generado porscripts/parse/boundaries.ts, a partir de la captura semanal del GeoPackage
Cambia cuandoEl NGI publica una nueva versión: cada año, cuando se actualizan los límites municipales del SPF Finances / FOD Financiën, o cuando una ley modifica el anexo
CubreDesde el 21 de octubre de 2026, el día en que se leyó el archivo por primera vez: las búsquedas para un día anterior lanzan un RangeError (tiempo)
ComprobadoCada semana, mediante el workflow de fuentes: la build falla cuando un cantón no tiene límite o un límite no corresponde a ningún cantón

Cómo trazó el NGI los límites, según sus propias palabras: donde el anexo se refiere a límites municipales, usó los límites catastrales del SPF Finances; donde se refiere a cursos de agua o carreteras, los datos topográficos propios del NGI; donde se refiere a antiguos municipios, los límites de estos según el NGI. La escala es 1:10 000.

Campos ​

CampoTipoDescripción
idCantonIdEl id del cantón: un cantón tiene un solo límite, que toma su clave
validFrom, validTostring?Los días en que se aplica el registro; ausentes: desde el inicio de la cobertura, o sigue vigente. Ver tiempo
cantonCantonIdEl cantón al que pertenece el límite
ngiIdstringEl identificador del objeto en el NGI (su tgid), un GUID
cantonCode{ nl, fr }El código del cantón en los datos del NGI: seis dígitos (248112 para Gent 1), con un prefijo N o F por lengua en Bruselas-Capital y en Sint-Genesius-Rode (N238104)
geometryMultiPolygonGeoJSON (RFC 7946): WGS 84, longitud primero, anillos exteriores en sentido antihorario, huecos en sentido horario
sources{ url, retrieved }[]El archivo del NGI del que se leyó el registro
ts
interface CantonBoundary {
    id: CantonId // 'gent-1'
    canton: CantonId // 'gent-1'
    ngiId: string // '{3905ED53-F233-4C4E-8225-4E43FEC7C541}'
    cantonCode: Bilingual // { nl: '248114', fr: '248114' }
    geometry: MultiPolygon // { type: 'MultiPolygon', coordinates: [[[[lon, lat], …]]] }
    sources: SourceRef[]
}

La geometría es la del NGI, vértice por vértice: no se simplifica nada. Las coordenadas se redondean a 7 decimales, aproximadamente un centímetro, por debajo de la propia precisión de la fuente. Cada límite es un MultiPolygon, aunque tenga un solo polígono, para que todos los registros tengan la misma estructura.

Cómo se emparejan los cantones con los features del NGI ​

El NGI nombra cada feature en neerlandés y en francés (Eerste gerechtelijk kanton Gent, Premier canton judiciaire de Gand). Un feature es el límite de un cantón cuando ambos nombres, convertidos en id de la forma habitual, dan ese cantón y coinciden en su número. Siete features se nombran con su nombre local en ambas lenguas donde el anexo usa un exónimo (Canton judiciaire de Halle, donde el anexo dice Hal; Gerechtelijk kanton Huy, donde dice Hoei); esos se asignan por su código de cantón en CANTON_ALIASES en el parser. Cualquier otra cosa detiene la build.

Tamaño ​

Los límites son con diferencia el conjunto de datos más grande: alrededor de un millón de posiciones. Tienen su propio entry point, belgica/canton-boundaries, y la raíz del paquete no los reexporta, así que nada los carga a menos que los pida:

Entry pointJavaScript cargadogzip
belgica1.0 MB0.1 MB
belgica/canton-boundaries0.2 MB0.0 MB

El archivo sin procesar, data/canton-boundaries.json, está en el paquete npm y en cada release, así que Python, PostGIS y las herramientas SIG pueden leerlo sin el JavaScript.

Encontrar el cantón de un punto ​

ts
import { findCantonsAt, getCantonBoundary } from 'belgica/canton-boundaries'
import { getJusticeOfThePeace } from 'belgica/courts'

// Primero la longitud, luego la latitud, en el orden de GeoJSON
const [canton] = findCantonsAt(3.7268, 51.053) // Sint-Baafskathedraal, Gent → gent-1
getJusticeOfThePeace(canton.id).address // dónde presentar

findCantonsAt(2.3522, 48.8566) // [] : París, fuera de Bélgica
getCantonBoundary('gent-1').geometry // el MultiPolygon

findCantonsAt devuelve un cantón para un punto en Bélgica, ninguno fuera, y los dos cantones para un punto situado exactamente en la línea entre ambos. No necesita dependencias: un simple test de punto en polígono sobre los límites, alrededor de un milisegundo por búsqueda. Geocodificar la dirección (de calle y número a coordenadas) corre de tu cuenta: los registros de direcciones de las regiones (el Adressenregister de Flandes, UrbIS de Bruselas, ICAR de Valonia) y los datos de direcciones federales BeSt en geo.be lo hacen.

En otros lenguajes ​

El archivo es geometría GeoJSON simple por registro, así que cualquier SIG lo lee. En Python con Shapely:

python
import json
from shapely.geometry import Point, shape

boundaries = json.load(open("data/canton-boundaries.json"))
polygons = {b["canton"]: shape(b["geometry"]) for b in boundaries}

def cantons_at(lon: float, lat: float) -> list[str]:
    point = Point(lon, lat)
    return [canton for canton, polygon in polygons.items() if polygon.covers(point)]

cantons_at(3.7268, 51.053)  # ['gent-1']

Código bajo MIT, datos bajo CC BY 4.0. Datos de referencia, no asesoramiento jurídico: consulta las fuentes oficiales.