Des fonds de carte gratuits pour vos sites et applications Rapide. Gratuit. Pour toujours.

Des tuiles vectorielles illimitées, issues des données OpenStreetMap, prêtes à intégrer dans MapLibre GL ou Leaflet. Sans clé API, sans quota, sans facture surprise.

Propulsé par OpenFreeMap 🚀

Pourquoi une carte en ligne coûte si cher (et pourquoi LFMaps est gratuit)

La plupart des fournisseurs de fonds de carte vous accueillent avec des crédits gratuits. Puis le trafic augmente, et la facturation à l’usage transforme un petit essai en vraie facture : compteurs opaques, tarifs qui grimpent à chaque affichage de carte, et grilles de prix qu’il faut décortiquer au tableur. Google Maps et Mapbox fonctionnent tous les deux ainsi. Ce qui semblait gratuit devient un coût dont votre projet se passerait bien.

LFMaps, c’est différent. Gratuit veut dire gratuit — pas de surprise, pas de plafond, pas de facture.

Pourquoi choisir LFMaps pour vos fonds de carte gratuits ?

Tout ce qu’il faut pour publier une carte. Rien de plus.

Sans clé API

Collez l’URL du style et c’est parti. Sans inscription, sans jeton d’accès, sans tableau de bord.

Tuiles illimitées

Aucun quota, aucune limite déguisée, aucun compteur à l’affichage. Utilisez ce dont vous avez besoin.

Gratuit pour toujours

Zéro euro quel que soit le trafic : dix affichages de carte ou dix millions.

Sans tracking, sans collecte

Nous ne pistons pas vos visiteurs et ne déposons aucun cookie. Votre politique de confidentialité reste aussi courte qu’avant.

Démo en direct : trois styles de carte à tester

Comment ajouter une carte gratuite à votre site

Idéal avec MapLibre GL, et compatible Leaflet comme React

Étape 1 : Ajoutez MapLibre GL à votre HTML

<script src="https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js"></script>
<link href="https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css" rel="stylesheet" />

MapLibre GL v6 est uniquement en ESM, ces exemples utilisent donc la v5 pour un usage direct par balise script.

Ou installez avec npm

npm i maplibre-gl@^5

Puis importez-le dans votre JavaScript :

import maplibregl from 'maplibre-gl'
import 'maplibre-gl/dist/maplibre-gl.css'

Étape 2 : Créez votre carte

<div id="map" style="width: 100%; height: 500px"></div>
<script>
  const map = new maplibregl.Map({
    style: 'https://data.lfmaps.fr/styles/bright',
    center: [6.1844, 48.6937],
    zoom: 12,
    container: 'map',
  })
</script>

Astuce : chargez MapLibre en différé pour de meilleurs Core Web Vitals

Recommandé

Pourquoi c’est utile :

Améliore le Largest Contentful Paint (LCP)
Réduit le First Input Delay (FID)
Limite le Cumulative Layout Shift (CLS)
Économise ~750 Ko au premier chargement

De meilleurs Core Web Vitals aident souvent le référencement

Utilisez ce chargeur pour un premier rendu plus léger :

let maplibrePromise = null;
let cssLoaded = false;

/**
 * Charge MapLibre GL et son CSS de manière différée au besoin
 * @returns {Promise} Le module MapLibre GL
 */
async function loadMapLibre() {
    if (!maplibrePromise) {
        maplibrePromise = Promise.all([
            import('maplibre-gl'),
            loadMapLibreCSS()
        ]).then(([module]) => module.default);
    }
    return maplibrePromise;
}

/**
 * Charge le CSS de MapLibre GL dynamiquement
 */
async function loadMapLibreCSS() {
    if (!cssLoaded) {
        await import('maplibre-gl/dist/maplibre-gl.css');
        cssLoaded = true;
    }
}

/**
 * Classe de chargement différé pour MapLibre GL
 * Fournit une API similaire à maplibregl mais avec chargement différé
 */
export class MapLibreLoader {
    constructor() {
        this.maplibregl = null;
    }

    /**
     * Crée une nouvelle instance de carte, chargeant MapLibre GL si nécessaire
     * @param {Object} options - Options de configuration de la carte
     * @returns {Promise} Une instance de carte MapLibre GL
     */
    async createMap(options) {
        this.maplibregl = await loadMapLibre();
        return new this.maplibregl.Map(options);
    }

    /**
     * Récupère la bibliothèque MapLibre GL, avec chargement différé si nécessaire
     * @returns {Promise} La bibliothèque MapLibre GL
     */
    async getLibrary() {
        this.maplibregl = await loadMapLibre();
        return this.maplibregl;
    }
}

export default new MapLibreLoader();

Exemple d’utilisation :

import MapLibreLoader from './maplibre-loader.js';

// Créer la carte uniquement quand nécessaire (ex. : au défilement ou interaction utilisateur)
async function initMap() {
    const map = await MapLibreLoader.createMap({
        style: 'https://data.lfmaps.fr/styles/bright',
        center: [6.1844, 48.6937],
        zoom: 12,
        container: 'map',
    });
    
    // Ajouter des contrôles, marqueurs, etc.
    const maplibregl = await MapLibreLoader.getLibrary();
    map.addControl(new maplibregl.NavigationControl());
}

Pour les fonctions avancées et l’API complète, consultez la documentation MapLibre GL JS

Vous utilisez Leaflet ? Un plugin suffit pour des tuiles gratuites

Leaflet ne lit pas les tuiles vectorielles tout seul : associez-le au plugin maplibre-gl-leaflet.

<link href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" rel="stylesheet" />
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js"></script>
<script src="https://unpkg.com/@maplibre/maplibre-gl-leaflet@0.1.3/leaflet-maplibre-gl.js"></script>

<script>
  const map = L.map('map').setView([48.6937, 6.1844], 12)
  L.maplibreGL({
    style: 'https://data.lfmaps.fr/styles/bright',
  }).addTo(map)
</script>

Le plugin fonctionne avec Leaflet 1.x : les mêmes tuiles gratuites, sans la facture.

Une carte gratuite dans React

npm i react-map-gl maplibre-gl@^5
import Map from 'react-map-gl/maplibre'
import 'maplibre-gl/dist/maplibre-gl.css'

export default function MyMap() {
  return (
    <Map
      initialViewState={{ longitude: 6.1844, latitude: 48.6937, zoom: 12 }}
      style={{ width: '100%', height: 500 }}
      mapStyle="https://data.lfmaps.fr/styles/bright"
    />
  )
}

Ni mapbox-gl ni jeton d’accès : react-map-gl s’appuie directement sur MapLibre GL.

Styles de carte gratuits : bright, positron et liberty

  • https://data.lfmaps.fr/styles/bright
  • https://data.lfmaps.fr/styles/positron
  • https://data.lfmaps.fr/styles/liberty

Conçu pour la vitesse : des tuiles servies rapidement partout

Ultra rapide

Des tuiles servies par CDN, pour des cartes affichées en un clin d’œil

Fiable

99,9 % de disponibilité

Couverture mondiale

Les données OpenStreetMap, du monde entier

Facile à intégrer

Quelques lignes de MapLibre GL ou Leaflet et c’est en ligne

Une alternative gratuite à Google Maps et Mapbox

Le même résultat : une carte sur votre page. Une facture très différente en fin de mois.

Les fournisseurs payants

  • Une offre gratuite, puis une facturation à l’affichage dès que vous la dépassez
  • Une clé API à créer, protéger et renouveler
  • Des tableaux de bord, des quotas et des alertes de facturation à surveiller
  • Des statistiques collectées sur les personnes qui consultent votre carte

LFMaps

  • Gratuit quel que soit le trafic : il n’y a aucun compteur à dépasser
  • Pas de clé API, puisqu’il n’y a pas de compte
  • Rien à surveiller : collez une URL de style et passez à la suite
  • Aucun pistage, ni de vous ni de vos visiteurs

Le compromis, en toute transparence : LFMaps fournit des fonds de carte, et rien d’autre. Le géocodage, le calcul d’itinéraire et la navigation ne font pas partie du service.

Fonds de carte gratuits : les questions fréquentes

LFMaps est-il vraiment gratuit ?

Oui. Aucune offre payante, aucune carte bancaire, aucune facture à l’usage, quel que soit votre trafic. LFMaps est financé comme un projet personnel, à l’image des autres outils gratuits de cette page.

Faut-il une clé API ou un compte ?

Non. Rien à créer, aucun jeton à renouveler. Pointez le style de votre carte vers une URL LFMaps et ça fonctionne.

Y a-t-il des quotas ou des limites de débit ?

Ni quota ni limite stricte. Nous demandons simplement de ne pas aspirer l’ensemble des tuiles en masse : un usage normal sur un site ou une application ne pose aucun problème.

Est-ce que ça marche avec Leaflet et avec MapLibre GL ?

Oui. MapLibre GL affiche les tuiles vectorielles nativement et reste notre recommandation, mais Leaflet fonctionne aussi avec le plugin maplibre-gl-leaflet.

D’où viennent les données cartographiques ?

D’OpenStreetMap, servies via OpenFreeMap. Ces données sont produites par la communauté : c’est précisément ce qui permet au service de rester gratuit.

Puis-je utiliser LFMaps sur un site commercial ?

Oui, projets commerciaux compris. Conservez simplement l’attribution OpenStreetMap visible sur la carte : c’est la seule obligation.

Pistez-vous mes visiteurs ?

Non. Aucune donnée personnelle collectée et aucun cookie déposé lors des requêtes de tuiles : ajouter une carte n’ajoute rien à votre politique de confidentialité.

Quelle différence avec Google Maps ou Mapbox ?

Ces services offrent un palier gratuit puis facturent à l’affichage dès que vous grandissez. LFMaps n’a aucun compteur : le prix est de zéro à dix affichages comme à dix millions.