Ingyenes térképcsempék weboldalaidhoz és alkalmazásaidhoz Gyorsan. Ingyen. Örökre.

Korlátlan vektoros térképcsempék OpenStreetMap-adatokból, közvetlenül használhatók MapLibre GL-lel vagy Leaflettel. API-kulcs, kvóta és váratlan számlák nélkül.

Az adatok forrása: OpenFreeMap 🚀

Miért drágulnak meg a térképcsempék, és miért marad ingyenes az LFMaps?

A legtöbb térképcsempe-szolgáltató ingyenes kerettel csábít. Aztán nő a forgalom, és a használatalapú számlázás valódi költséggé változtatja a kis kísérletet: átláthatatlan elszámolás, minden térképbetöltéssel növekvő díjak és táblázatkezelőt igénylő árlisták. A Google Maps és a Mapbox is így működik. Ami ingyenesnek tűnt, végül nem kívánt kiadást jelenthet a projektednek.

Az LFMaps másképp működik. Az ingyenes tényleg ingyenes: meglepetések, korlátok és számlák nélkül.

Miért válaszd az LFMaps ingyenes térképcsempéit?

Minden, ami egy térkép elindításához kell. Felesleges extrák nélkül.

Nem kell API-kulcs

Add meg a csempék URL-jét, és indulhat is. Regisztráció, hozzáférési token és vezérlőpult nélkül.

Korlátlan csempelekérés

Nincsenek kvóták, rejtett korlátok vagy térképbetöltésenkénti díjak. Használj annyit, amennyire szükséged van.

Örökre ingyenes

Nulla költség bármilyen forgalom mellett: tíz vagy tízmillió térképmegtekintésnél is.

Nincs követés vagy adatgyűjtés

Nem követjük a látogatóidat, és nem helyezünk el sütiket. Az adatkezelési tájékoztatód ugyanolyan rövid maradhat.

Élő vektoros térképbemutató három stílussal

Így adhatsz ingyenes térképcsempéket a weboldaladhoz

MapLibre GL-lel működik a legjobban, de Leaflettel és Reacttel is használható

1. lépés: Add hozzá a MapLibre GL-t a HTML-kódhoz

<link href="https://unpkg.com/maplibre-gl@6.11.2/dist/maplibre-gl.css" rel="stylesheet" />
<script type="importmap">
  { "imports": { "maplibre-gl": "https://unpkg.com/maplibre-gl@6.11.2/dist/maplibre-gl.mjs" } }
</script>

A MapLibre GL v6 kizárólag ES-modulokként érhető el, ezért ezek a példák importtérképpel és modulszkripttel töltik be.

Vagy telepítsd npm-mel

npm i maplibre-gl@^6

Ezután importáld a JavaScript-kódodban:

import * as maplibregl from 'maplibre-gl'
import 'maplibre-gl/dist/maplibre-gl.css'
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url'

maplibregl.setWorkerUrl(workerUrl)

A csomagolt kódban a MapLibre nem találja meg automatikusan a workerét. Ez a Vite-hoz használható megoldás; a webpack és más eszközök esetén lásd ezt az útmutatót: A MapLibre telepítési útmutatója.

2. lépés: Hozd létre a térképet

<div id="map" style="width: 100%; height: 500px"></div>
<script type="module">
  import * as maplibregl from 'maplibre-gl'

  const map = new maplibregl.Map({
    style: 'https://data.lfmaps.fr/styles/bright',
    center: [6.1844, 48.6937],
    zoom: 12,
    container: 'map',
  })
</script>

Tipp: töltsd be késleltetve a MapLibre-t a jobb Core Web Vitals mutatókért

Ajánlott

Ezért hasznos:

Javítja a Largest Contentful Paint (LCP) értékét
Csökkenti a First Input Delay (FID) értékét
Alacsonyan tartja a Cumulative Layout Shift (CLS) értékét
Az első betöltéskor kb. 750 KB-ot takarít meg

A jobb Core Web Vitals mutatók gyakran jobb keresési helyezést jelentenek

Ezzel a betöltővel gyorsabb lehet az első megjelenítés:

// Vite-hoz használható megoldás; más csomagolókhoz lásd a telepítési útmutatót
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url';

let maplibrePromise = null;
let cssLoaded = false;

/**
 * Szükség esetén késleltetve tölti be a MapLibre GL-t és a hozzá tartozó CSS-t
 * @returns {Promise} A MapLibre GL modul
 */
async function loadMapLibre() {
    if (!maplibrePromise) {
        maplibrePromise = Promise.all([
            import('maplibre-gl'),
            loadMapLibreCSS()
        ]).then(([module]) => {
            module.setWorkerUrl(workerUrl);
            return module;
        });
    }
    return maplibrePromise;
}

/**
 * Dinamikusan tölti be a MapLibre GL CSS-ét
 */
async function loadMapLibreCSS() {
    if (!cssLoaded) {
        await import('maplibre-gl/dist/maplibre-gl.css');
        cssLoaded = true;
    }
}

/**
 * Osztály a MapLibre GL késleltetett betöltéséhez
 * A maplibregl-hez hasonló API-t biztosít késleltetett betöltéssel
 */
export class MapLibreLoader {
    constructor() {
        this.maplibregl = null;
    }

    /**
     * Új térképpéldányt hoz létre, szükség esetén késleltetve betöltve a MapLibre GL-t
     * @param {Object} options - A térkép beállításai
     * @returns {Promise} Egy MapLibre GL Map-példány
     */
    async createMap(options) {
        this.maplibregl = await loadMapLibre();
        return new this.maplibregl.Map(options);
    }

    /**
     * Visszaadja a MapLibre GL könyvtárat, szükség esetén késleltetve betöltve azt
     * @returns {Promise} A MapLibre GL könyvtár
     */
    async getLibrary() {
        this.maplibregl = await loadMapLibre();
        return this.maplibregl;
    }
}

export default new MapLibreLoader();

Használati példa:

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

// Csak szükség esetén hozd létre a térképet, például görgetéskor vagy felhasználói műveletre
async function initMap() {
    const map = await MapLibreLoader.createMap({
        style: 'https://data.lfmaps.fr/styles/bright',
        center: [6.1844, 48.6937],
        zoom: 12,
        container: 'map',
    });
    
    // Vezérlők, jelölők és egyéb elemek hozzáadása
    const maplibregl = await MapLibreLoader.getLibrary();
    map.addControl(new maplibregl.NavigationControl());
}

A haladó funkciókat és a teljes API-t itt találod: A MapLibre GL JS dokumentációja

Leafletet használsz? Egy bővítménnyel ingyenes térképcsempéket adhatsz hozzá

A Leaflet önmagában nem tudja olvasni a vektoros csempéket, ezért használd a maplibre-gl-leaflet bővítménnyel:

<link href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" rel="stylesheet" />
<script type="importmap">
  { "imports": {
    "leaflet": "https://unpkg.com/leaflet@1.9.4/dist/leaflet-src.esm.js",
    "maplibre-gl": "https://unpkg.com/maplibre-gl@6.11.2/dist/maplibre-gl.mjs"
  } }
</script>

<script type="module">
  import * as L from 'leaflet'
  import { maplibreGL } from 'https://unpkg.com/@maplibre/maplibre-gl-leaflet@0.1.4/dist/leaflet-maplibre-gl.mjs'

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

A bővítmény a Leaflet 1.x verzióját támogatja: ugyanazok az ingyenes csempék, számlázás nélkül.

Ingyenes térképcsempék Reactben

npm i react-map-gl maplibre-gl@^6
import Map from 'react-map-gl/maplibre'
import { setWorkerUrl } from 'maplibre-gl'
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url'
import 'maplibre-gl/dist/maplibre-gl.css'

setWorkerUrl(workerUrl)

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"
    />
  )
}

Nem kell mapbox-gl vagy hozzáférési token: a react-map-gl közvetlenül a MapLibre GL-lel kommunikál.

Ingyenes térképcsempe-stílusok: bright, positron és liberty

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

Gyors térképcsempe-kiszolgálás világszerte

Villámgyors

A CDN-ről érkező csempékkel a térképek egy szempillantás alatt megjelennek

Megbízható

99,9% rendelkezésre állás

Világméretű lefedettség

Az egész világot lefedő OpenStreetMap-adatok

Egyszerű beillesztés

Néhány sor MapLibre GL- vagy Leaflet-kód, és már működik is

Ingyenes alternatíva a Google Maps és a Mapbox helyett

Ugyanaz a feladat: térkép az oldaladon. Egészen más számla a hónap végén.

Fizetős térképcsempe-szolgáltatók

  • Ingyenes keret, majd annak túllépése után térképbetöltésenkénti számlázás
  • API-kulcs, amelyet létre kell hozni, védeni és rendszeresen cserélni kell
  • Figyelmet igénylő használati kimutatások, kvóták és számlázási értesítések
  • A térképedet használókról gyűjtött analitikai adatok

LFMaps

  • Bármilyen forgalom mellett ingyenes: nincs túlléphető keret
  • Nincs API-kulcs, mert fiókra sincs szükség
  • Nincs mit figyelni: illeszd be a stílus URL-jét, és kész
  • Sem téged, sem a látogatóidat nem követjük

A korlátokról őszintén: az LFMaps térképcsempéket biztosít, mást nem. A geokódolás, az útvonaltervezés és a navigáció nem része a szolgáltatásnak.

Ingyenes térképcsempék: gyakori kérdések

Tényleg ingyenes az LFMaps?

Igen. Nincs fizetős csomag, nincs szükség bankkártyára, és használati díj sincs, bármekkora a forgalmad. Az LFMaps finanszírozása mellékprojektként történik, akárcsak az oldalon található többi ingyenes eszközé.

Kell API-kulcs vagy felhasználói fiók?

Nem. Nincs regisztráció és rendszeresen cserélendő token. Állítsd a térképstílusod címét egy LFMaps URL-re, és már működik is.

Van lekérési sebességkorlát vagy kvóta a térképcsempéknél?

Nincs kvóta vagy szigorú lekérési sebességkorlát. Csak azt kérjük, hogy ne töltsd le automatizáltan a teljes csempekészletet. A szokásos weboldalas vagy alkalmazáson belüli térképhasználat rendben van.

A MapLibre GL mellett Leaflettel is működik az LFMaps?

Igen. A MapLibre GL natívan jeleníti meg a vektoros csempéket, ezért ezt ajánljuk, de a Leaflet is használható a maplibre-gl-leaflet bővítménnyel.

Honnan származnak a térképadatok?

Az OpenStreetMapből, az OpenFreeMap közvetítésével. Az adatokat a közösség készíti, és éppen ezért maradhatnak ingyenesek.

Használhatom az LFMaps szolgáltatást üzleti weboldalon?

Igen, üzleti projektekben is. Az OpenStreetMap forrásmegjelölését tartsd láthatóan a térképen: ez az egyetlen feltétel.

Követitek a látogatóimat?

Nem. Nem gyűjtünk személyes adatokat, és nem helyezünk el sütiket a csempelekéréseknél, így a térkép hozzáadása nem bővíti az adatkezelési tájékoztatódat.

Miben különbözik a Google Mapstől vagy a Mapboxtól?

Ezek ingyenes keretet kínálnak, majd annak túllépése után térképbetöltésenként számláznak. Az LFMaps egyáltalán nem méri a fizetendő használatot: az ár tíz térképmegtekintésnél és tízmilliónál is nulla.