Cartographie

GeoJSON : Le Format Standard pour les Données Géographiques

Par MapWay Team 28 Mai 2025 8 min de lecture
Code JSON représentant des données géographiques

GeoJSON est un format d'échange de données géographiques basé sur JSON (JavaScript Object Notation). Standardisé par l'IETF dans la RFC 7946, il est devenu le format de prédilection pour représenter des entités géographiques dans les applications web. Sa simplicité, sa lisibilité et sa compatibilité native avec JavaScript en font un outil incontournable pour tout développeur travaillant avec des données cartographiques. Chez MapWay, nous utilisons GeoJSON quotidiennement dans l'ensemble de nos API et services.

Structure d'un document GeoJSON

Un document GeoJSON est un objet JSON contenant des entités géographiques (Features) regroupées dans une collection (FeatureCollection). Chaque Feature possède une géométrie (Geometry) et des propriétés descriptives (Properties) :

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [10.1658, 36.7992]
      },
      "properties": {
        "nom": "Tunis",
        "population": 693210,
        "gouvernorat": "Tunis"
      }
    }
  ]
}

Notez l'ordre des coordonnées : longitude d'abord, latitude ensuite. C'est l'inverse de la convention GPS habituelle (latitude, longitude) et c'est une source fréquente d'erreurs pour les développeurs débutants.

Les types de géométrie

GeoJSON supporte sept types de géométrie :

Géométries simples

  • Point : une position unique, idéale pour des marqueurs (commerces, POI, adresses).
  • LineString : une séquence de points reliés formant une ligne (routes, rivières, itinéraires).
  • Polygon : une forme fermée délimitant une zone (parcelles, limites administratives, bâtiments). Le premier et le dernier point doivent être identiques.

Géométries multiples

  • MultiPoint : un ensemble de points indépendants.
  • MultiLineString : un ensemble de lignes (réseau routier d'une commune).
  • MultiPolygon : un ensemble de polygones (les îles Kerkennah en Tunisie, par exemple).

GeometryCollection

Un conteneur pour des géométries de types différents. Rarement utilisé en pratique car une FeatureCollection est généralement plus appropriée.

Manipuler GeoJSON en JavaScript

GeoJSON étant nativement du JSON, il est directement manipulable en JavaScript sans bibliothèque supplémentaire. Pour des opérations plus avancées, la bibliothèque Turf.js offre un ensemble complet de fonctions d'analyse spatiale côté client :

import * as turf from '@turf/turf';

// Créer un point
const point = turf.point([10.1658, 36.7992], { nom: "Tunis" });

// Créer un buffer de 5 km autour du point
const buffer = turf.buffer(point, 5, { units: 'kilometers' });

// Calculer la distance entre deux points
const sfax = turf.point([10.7613, 34.7406]);
const distance = turf.distance(point, sfax, { units: 'kilometers' });
console.log(`Distance Tunis-Sfax: ${distance.toFixed(0)} km`);

Afficher du GeoJSON sur une carte

Tous les frameworks cartographiques majeurs supportent nativement le GeoJSON. Voici un exemple avec Leaflet pour afficher les gouvernorats de Tunisie :

fetch('gouvernorats-tunisie.geojson')
  .then(response => response.json())
  .then(data => {
    L.geoJSON(data, {
      style: (feature) => ({
        fillColor: '#3b82f6',
        weight: 2,
        opacity: 1,
        color: 'white',
        fillOpacity: 0.5
      }),
      onEachFeature: (feature, layer) => {
        layer.bindPopup(feature.properties.nom);
      }
    }).addTo(map);
  });

Bonnes pratiques

  • Utilisez EPSG:4326 : la RFC 7946 impose le système de coordonnées WGS 84 (EPSG:4326). N'utilisez pas d'autres projections dans vos fichiers GeoJSON.
  • Simplifiez les géométries : pour l'affichage web, simplifiez les polygones complexes avec des outils comme Mapshaper pour réduire la taille du fichier.
  • Limitez les propriétés : n'incluez que les attributs nécessaires pour réduire la taille du payload.
  • Attention à la taille : GeoJSON est verbeux. Pour les grands jeux de données (plus de 10 000 features), préférez les tuiles vectorielles ou le streaming.
  • Validez vos données : utilisez des outils comme geojsonhint ou geojson.io pour vérifier la validité de vos fichiers.

GeoJSON chez MapWay

Chez MapWay, GeoJSON est le format d'échange privilégié de nos API cartographiques. Notre service de géocodage Houni.tn retourne les résultats en GeoJSON, permettant une intégration directe avec n'importe quel framework cartographique. Notre API de codes postaux Code-Postale.tn fournit également les contours des zones postales en GeoJSON pour une visualisation immédiate sur une carte.

Besoin d'aide pour votre projet ?

Notre équipe d'experts est prête à vous accompagner.

Contactez-nous