Tasuta kaardipaanid sinu veebilehtedele ja rakendustele Kiire. Tasuta. Alati.

Piiramatult OpenStreetMapi andmetel põhinevaid vektorkaardi paane, mis sobivad kohe MapLibre GL-i või Leafletiga. Ilma API-võtme, kvootide ja ootamatute arveteta.

Aluseks on OpenFreeMap 🚀

Miks kaardipaanid kalliks lähevad (ja miks LFMaps ei lähe)

Enamik kaardipaanide pakkujaid tervitab sind tasuta kasutusmahuga. Siis liiklus kasvab ja kasutuspõhine hinnastus muudab väikese katsetuse arvestatavaks kuluks: segased mõõdikud, iga kaardi laadimisega kasvavad tasud ja hinnakirjad, mille mõistmiseks on vaja arvutustabelit. Nii toimivad nii Google Maps kui ka Mapbox. Tasuta tundunud teenusest saab kulu, mida sinu projekt ei pruugi soovida.

LFMaps on teistsugune. Tasuta tähendab tasuta: ei üllatusi, ülempiire ega arveid.

Miks valida tasuta kaardipaanide jaoks LFMaps?

Kõik, mida vajad kaardi avaldamiseks. Ei midagi üleliigset.

API-võtit pole vaja

Lisa kaardipaanide URL ja alusta. Ei registreerimist, juurdepääsutõendeid ega halduspaneeli.

Piiramatult kaardipaanide päringuid

Ei kvoote, varjatud piiranguid ega kaardi laadimiste loendurit. Kasuta nii palju, kui vajad.

Alati tasuta

Nullkulu iga külastuste arvu juures, olgu kaardivaatamisi kümme või kümme miljonit.

Ei jälgimist ega andmete kogumist

Me ei jälgi sinu külastajaid ega salvesta küpsiseid. Sinu privaatsusteade jääb sama lühikeseks kui enne.

Vektorkaardi paanide reaalajas demo: kolm kaardistiili

Kuidas lisada oma veebilehele tasuta kaardipaanid

Sobib kõige paremini MapLibre GL-iga, aga ka Leafleti ja Reactiga

1. samm: lisa MapLibre GL oma HTML-i

<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>

MapLibre GL v6 on saadaval ainult ES-moodulitena, seega laadivad need näited selle impordikaardi ja moodulskripti abil.

Või paigalda npm-i abil

npm i maplibre-gl@^6

Seejärel impordi see oma JavaScripti:

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)

Pakendatud koodis ei leia MapLibre oma töötluslõime ise üles. See on Vite'i näide; webpacki ja muude tööriistade kohta vaata MapLibre'i paigaldusjuhendit.

2. samm: loo oma kaart

<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>

Nõuanne: laadi MapLibre vajaduse korral, et parandada Core Web Vitalsi näitajaid

Soovitatav

Miks see aitab:

Parandab suurima sisuelemendi kuvamise aega (LCP)
Vähendab esimese sisendi viivitust (FID)
Hoiab kumulatiivse paigutusnihke (CLS) kontrolli all
Säästab esmasel laadimisel umbes 750 KB

Paremad Core Web Vitalsi näitajad tähendavad sageli paremat kohta otsingutulemustes

Kasuta seda laadijat, et esmane kuva oleks kergem:

// Vite'i näide; muude pakendustööriistade kohta vaata paigaldusjuhendit
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url';

let maplibrePromise = null;
let cssLoaded = false;

/**
 * Laadib MapLibre GL-i ja selle CSS-i vajaduse korral
 * @returns {Promise} MapLibre GL-i moodul
 */
async function loadMapLibre() {
    if (!maplibrePromise) {
        maplibrePromise = Promise.all([
            import('maplibre-gl'),
            loadMapLibreCSS()
        ]).then(([module]) => {
            module.setWorkerUrl(workerUrl);
            return module;
        });
    }
    return maplibrePromise;
}

/**
 * Laadib MapLibre GL-i CSS-i dünaamiliselt
 */
async function loadMapLibreCSS() {
    if (!cssLoaded) {
        await import('maplibre-gl/dist/maplibre-gl.css');
        cssLoaded = true;
    }
}

/**
 * MapLibre GL-i vajaduspõhise laadija klass
 * Pakub maplibregl-iga sarnast API-t koos vajaduspõhise laadimisega
 */
export class MapLibreLoader {
    constructor() {
        this.maplibregl = null;
    }

    /**
     * Loob uue kaardi, laadides vajaduse korral MapLibre GL-i
     * @param {Object} options - Kaardi seadistusvalikud
     * @returns {Promise} MapLibre GL-i kaardiobjekt
     */
    async createMap(options) {
        this.maplibregl = await loadMapLibre();
        return new this.maplibregl.Map(options);
    }

    /**
     * Hangib MapLibre GL-i teegi, laadides selle vajaduse korral
     * @returns {Promise} MapLibre GL-i teek
     */
    async getLibrary() {
        this.maplibregl = await loadMapLibre();
        return this.maplibregl;
    }
}

export default new MapLibreLoader();

Kasutusnäide:

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

// Loo kaart alles vajaduse korral (nt kerimisel või kasutaja tegevusel)
async function initMap() {
    const map = await MapLibreLoader.createMap({
        style: 'https://data.lfmaps.fr/styles/bright',
        center: [6.1844, 48.6937],
        zoom: 12,
        container: 'map',
    });
    
    // Lisa juhtelemendid, markerid jne
    const maplibregl = await MapLibreLoader.getLibrary();
    map.addControl(new maplibregl.NavigationControl());
}

Lisavõimaluste ja täieliku API kohta vaata MapLibre GL JS-i dokumentatsiooni

Kasutad Leafletit? Lisa tasuta kaardipaanid ühe pluginaga

Leaflet ei oska vektorkaardi paane iseseisvalt lugeda, seega lisa maplibre-gl-leaflet plugin:

<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>

Plugin toetab Leaflet 1.x-i: samad tasuta kaardipaanid, ilma arveteta.

Tasuta kaardipaanid Reactis

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

Ei mapbox-gl-i ega juurdepääsutõendeid: react-map-gl suhtleb otse MapLibre GL-iga.

Tasuta kaardipaanide stiilid: bright, positron ja liberty

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

Loodud kiiruseks: kaardipaanide kiire edastus kõikjal maailmas

Välkkiire

Kaardipaanid jõuavad kohale CDN-i kaudu, nii et kaart ilmub silmapilkselt

Töökindel

99.9% käideldavus

Ülemaailmne katvus

OpenStreetMapi andmed kogu maailma kohta

Lihtne liidestada

Mõni rida MapLibre GL-i või Leafleti koodi ja kaart ongi valmis

Tasuta alternatiiv Google Mapsile ja Mapboxile

Sama eesmärk: kaart sinu lehel. Kuu lõpus on arve aga hoopis teistsugune.

Tasulised kaardipaanide pakkujad

  • Tasuta algmaht, seejärel tasu iga kaardi laadimise eest
  • API-võti, mida tuleb luua, kaitsta ja vahetada
  • Kasutuspaneelid, kvoodid ja arveldusteavitused, mida jälgida
  • Kaardi kasutajate kohta kogutav analüütika

LFMaps

  • Tasuta iga külastuste arvu juures: puudub loendur, mille piir ületada
  • API-võtit pole vaja, sest kontot pole
  • Pole midagi jälgida: kleebi stiili URL ja liigu edasi
  • Ei sinu ega sinu külastajate jälgimist

Ausalt piirangutest: LFMaps pakub ainult kaardipaane. Geokodeerimine, teekonna planeerimine ja pöördehaaval navigeerimine ei kuulu teenuse juurde.

Tasuta kaardipaanid: korduma kippuvad küsimused

Kas LFMaps on tõesti tasuta?

Jah. Pole tasulist paketti, krediitkaardi nõuet ega kasutusarvet, olenemata külastuste arvust. LFMapsi rahastatakse kõrvalprojektina nagu teisigi selle lehe tasuta tööriistu.

Kas mul on vaja API-võtit või kontot?

Ei. Registreeruda pole vaja ja juurdepääsutõendeid pole vaja vahetada. Määra kaardistiili aadressiks LFMapsi URL ja see töötab.

Kas kaardipaanidele kehtivad päringupiirangud või kvoodid?

Kvoote ega ranget päringusageduse piirangut pole. Palume vaid, et sa ei laadiks automaatselt alla kogu kaardipaanide komplekti. Tavapärane kaardikasutus veebilehel või rakenduses sobib hästi.

Kas LFMaps töötab lisaks MapLibre GL-ile ka Leafletiga?

Jah. MapLibre GL kuvab vektorkaardi paane otse ja on meie soovitus, kuid Leaflet töötab samuti maplibre-gl-leaflet pluginaga.

Kust kaardiandmed pärinevad?

OpenStreetMapist OpenFreeMapi kaudu. Andmed on loonud kogukond ja just seetõttu saavadki need tasuta olla.

Kas võin kasutada LFMapsi ärilisel veebilehel?

Jah, ka äriprojektides. Hoia OpenStreetMapi allikaviide kaardil nähtavana: see on ainus nõue.

Kas te jälgite minu külastajaid?

Ei. Me ei kogu isikuandmeid ega salvesta kaardipaanide päringutega küpsiseid, seega ei lisa kaart sinu privaatsusteatele midagi juurde.

Mille poolest erineb see Google Mapsist või Mapboxist?

Need pakuvad tasuta algmahtu ning hakkavad kasutuse kasvades iga kaardi laadimise eest tasu küsima. LFMapsil pole üldse loendurit: hind on null nii kümne kui ka kümne miljoni kaardivaatamise korral.