Бесплатне плочице карте за ваше сајтове и апликације Брзо. Бесплатно. Заувек.

Неограничене векторске плочице карте засноване на подацима OpenStreetMap, спремне за MapLibre GL или Leaflet. Без API кључа, квота и неочекиваних рачуна.

Уз подршку OpenFreeMap 🚀

Зашто плочице карте постају скупе (а LFMaps остаје бесплатан)

Већина добављача плочица карте привуче вас бесплатним кредитима. Затим посећеност расте, а наплата према потрошњи претвара мали експеримент у озбиљан трошак: нејасни обрачуни, цене које расту са сваким учитавањем карте и ценовници за које вам треба табела. Тако раде и Google Maps и Mapbox. Оно што је деловало бесплатно постаје трошак који вашем пројекту можда не одговара.

LFMaps је другачији. Бесплатно заиста значи бесплатно: без изненађења, ограничења и рачуна.

Зашто изабрати LFMaps за бесплатне плочице карте?

Све што вам треба да објавите карту. Без сувишних ствари.

Без API кључа

Унесите URL плочица и почните. Без регистрације, приступног токена и контролне табле.

Неограничени захтеви за плочице

Без квота, скривених ограничења и обрачуна по учитавању карте. Користите колико вам треба.

Бесплатно заувек

Без трошкова при свакој посећености: од десет до десет милиона приказа карте.

Без праћења и прикупљања података

Не пратимо ваше посетиоце и не постављамо колачиће. Ваша политика приватности остаје једнако кратка.

Демо векторских плочица уживо — три стила карте

Како да додате бесплатне плочице карте на свој сајт

Најбоље ради уз MapLibre GL, а подржани су и Leaflet и React

Корак 1: Додајте MapLibre GL у HTML

<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 доступан је само као ES модули, па га ови примери учитавају помоћу мапе увоза и модулске скрипте.

Или инсталирајте помоћу npm

npm i maplibre-gl@^6

Затим га увезите у свој JavaScript:

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)

Унутар пакета MapLibre не може сам да пронађе свој worker. Ово је облик за Vite; за webpack и друге алате погледајте упутство за инсталацију MapLibre.

Корак 2: Направите карту

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

Савет: одложите учитавање MapLibre за боље Core Web Vitals показатеље

Препоручено

Зашто помаже:

Побољшава Largest Contentful Paint (LCP)
Смањује First Input Delay (FID)
Држи Cumulative Layout Shift (CLS) под контролом
Штеди око 750 KB при првом учитавању

Бољи Core Web Vitals показатељи често значе бољу позицију у претрази

Користите овај учитавач за бржи први приказ:

// Облик за Vite; за друге алате за паковање погледајте упутство за инсталацију
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url';

let maplibrePromise = null;
let cssLoaded = false;

/**
 * Одложено учитава MapLibre GL и његов CSS када затребају
 * @returns {Promise} Модул MapLibre GL
 */
async function loadMapLibre() {
    if (!maplibrePromise) {
        maplibrePromise = Promise.all([
            import('maplibre-gl'),
            loadMapLibreCSS()
        ]).then(([module]) => {
            module.setWorkerUrl(workerUrl);
            return module;
        });
    }
    return maplibrePromise;
}

/**
 * Динамички учитава CSS за MapLibre GL
 */
async function loadMapLibreCSS() {
    if (!cssLoaded) {
        await import('maplibre-gl/dist/maplibre-gl.css');
        cssLoaded = true;
    }
}

/**
 * Класа за одложено учитавање MapLibre GL
 * Нуди API сличан објекту maplibregl, али са одложеним учитавањем
 */
export class MapLibreLoader {
    constructor() {
        this.maplibregl = null;
    }

    /**
     * Прави нову инстанцу карте и по потреби одложено учитава MapLibre GL
     * @param {Object} options - Опције подешавања карте
     * @returns {Promise} Инстанца објекта Map из библиотеке MapLibre GL
     */
    async createMap(options) {
        this.maplibregl = await loadMapLibre();
        return new this.maplibregl.Map(options);
    }

    /**
     * Преузима библиотеку MapLibre GL и по потреби је одложено учитава
     * @returns {Promise} Библиотека MapLibre GL
     */
    async getLibrary() {
        this.maplibregl = await loadMapLibre();
        return this.maplibregl;
    }
}

export default new MapLibreLoader();

Пример употребе:

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

// Направите карту тек када затреба (нпр. при померању странице или радњи корисника)
async function initMap() {
    const map = await MapLibreLoader.createMap({
        style: 'https://data.lfmaps.fr/styles/bright',
        center: [6.1844, 48.6937],
        zoom: 12,
        container: 'map',
    });
    
    // Додајте контроле, маркере итд.
    const maplibregl = await MapLibreLoader.getLibrary();
    map.addControl(new maplibregl.NavigationControl());
}

За напредне могућности и потпун API погледајте документацију за MapLibre GL JS

Користите Leaflet? Додајте бесплатне плочице уз један додатак

Leaflet не може сам да чита векторске плочице, па га повежите са додатком maplibre-gl-leaflet:

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

Додатак подржава Leaflet 1.x: исте бесплатне плочице, без наплате.

Бесплатне плочице карте у React апликацијама

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

Без mapbox-gl и приступног токена: react-map-gl комуницира директно са MapLibre GL.

Бесплатни стилови карте: bright, positron и liberty

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

Брза испорука плочица карте широм света

Изузетно брзо

Плочице се испоручују преко CDN мреже, па се карте приказују за трен

Поуздано

Доступност 99,9%

Покривеност целог света

Подаци OpenStreetMap покривају цео свет

Једноставна интеграција

Неколико редова кода за MapLibre GL или Leaflet и карта је спремна

Бесплатна алтернатива за Google Maps и Mapbox

Исти задатак: карта на вашој страници. Сасвим другачији рачун на крају месеца.

Добављачи плочица карте уз наплату

  • Бесплатни пакет, па наплата по учитавању карте када га прерастете
  • API кључ који треба направити, заштитити и редовно мењати
  • Контролне табле потрошње, квоте и обавештења о наплати која треба пратити
  • Прикупљање аналитичких података о корисницима ваше карте

LFMaps

  • Бесплатно при свакој посећености: нема обрачуна који можете да прерастете
  • Без API кључа, јер нема корисничког налога
  • Нема шта да надгледате: налепите URL стила и наставите даље
  • Без праћења вас и ваших посетилаца

Искрено о ограничењима: LFMaps пружа само плочице карте. Геокодирање, израчунавање рута и детаљна навигациона упутства нису део услуге.

Бесплатне плочице карте: честа питања

Да ли је LFMaps заиста бесплатан?

Да. Нема плаћеног пакета, кредитне картице ни рачуна за потрошњу, без обзира на посећеност. LFMaps се финансира као споредни пројекат, баш као и други бесплатни алати на овој страници.

Да ли ми треба API кључ или налог?

Не. Нема регистрације ни токена који треба редовно мењати. Поставите LFMaps URL као стил карте и све ради.

Постоје ли ограничења броја захтева или квоте за плочице карте?

Нема квота ни строгог ограничења броја захтева. Молимо само да не преузимате масовно цео скуп плочица. Уобичајена употреба карте на сајту или у апликацији је сасвим у реду.

Да ли LFMaps ради и са Leaflet и са MapLibre GL?

Да. MapLibre GL изворно приказује векторске плочице и њега препоручујемо, али и Leaflet ради уз додатак maplibre-gl-leaflet.

Одакле потичу подаци карте?

Из OpenStreetMap, преко OpenFreeMap. Податке ствара заједница и управо зато могу да остану бесплатни.

Могу ли да користим LFMaps на комерцијалном сајту?

Да, дозвољени су и комерцијални пројекти. Једини услов је да навођење извора OpenStreetMap остане видљиво на карти.

Да ли пратите моје посетиоце?

Не. Не прикупљамо личне податке и не постављамо колачиће при захтевима за плочице, па додавање карте не проширује вашу политику приватности.

По чему се ово разликује од Google Maps или Mapbox?

Они нуде бесплатан пакет, а затим наплаћују свако учитавање карте када посећеност порасте. LFMaps уопште нема такав обрачун: цена је нула и за десет и за десет милиона приказа карте.