Tile peta gratis untuk situs web dan aplikasi Anda Cepat. Gratis. Selamanya.

Tile peta vektor tanpa batas dari data OpenStreetMap, siap dipasang di MapLibre GL atau Leaflet. Tanpa kunci API, tanpa kuota, tanpa tagihan tak terduga.

Didukung oleh OpenFreeMap 🚀

Mengapa biaya tile peta bisa membengkak (dan mengapa LFMaps tidak)

Kebanyakan penyedia tile peta menawarkan kredit gratis di awal. Saat lalu lintas meningkat, tarif berdasarkan pemakaian membuat proyek kecil berubah menjadi tagihan nyata: hitungan pemakaian yang tidak jelas, biaya untuk setiap pemuatan peta, dan daftar harga yang perlu dihitung dengan spreadsheet. Google Maps dan Mapbox sama-sama menggunakan model ini. Layanan yang semula terasa gratis bisa menjadi biaya yang tidak diinginkan proyek Anda.

LFMaps berbeda. Gratis berarti gratis — tanpa kejutan, tanpa batas pemakaian, tanpa tagihan.

Mengapa memilih LFMaps untuk tile peta gratis?

Semua yang Anda perlukan untuk menampilkan peta. Sesederhana itu.

Tidak perlu kunci API

Masukkan URL tile dan langsung gunakan. Tanpa pendaftaran, token akses, atau dasbor.

Permintaan tile tanpa batas

Tanpa kuota, batas tersembunyi, atau hitungan biaya per pemuatan peta. Gunakan sesuai kebutuhan.

Gratis selamanya

Tanpa biaya berapa pun lalu lintas Anda — sepuluh atau sepuluh juta tampilan peta.

Tanpa pelacakan dan pengumpulan data

Kami tidak melacak pengunjung Anda dan tidak memasang cookie. Kebijakan privasi Anda tetap sederhana.

Demo tile peta vektor langsung — tiga gaya peta

Cara menambahkan tile peta gratis ke situs Anda

Paling cocok dengan MapLibre GL, tetapi juga mendukung Leaflet dan React

Langkah 1: Tambahkan MapLibre GL ke HTML Anda

<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 hanya tersedia sebagai modul ES, jadi contoh ini memuatnya melalui import map dan skrip modul.

Atau instal dengan npm

npm i maplibre-gl@^6

Lalu impor di JavaScript Anda:

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)

Di dalam bundel, MapLibre tidak dapat menemukan worker secara otomatis. Ini adalah contoh untuk Vite; untuk webpack dan lainnya, lihat panduan instalasi MapLibre.

Langkah 2: Buat peta Anda

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

Kiat: muat MapLibre saat diperlukan untuk meningkatkan Core Web Vitals

Direkomendasikan

Manfaatnya:

Meningkatkan Largest Contentful Paint (LCP)
Mengurangi First Input Delay (FID)
Menjaga Cumulative Layout Shift (CLS) tetap rendah
Menghemat sekitar 750 KB saat pemuatan awal

Core Web Vitals yang lebih baik sering membantu peringkat pencarian

Gunakan pemuat ini agar tampilan awal lebih ringan:

// Contoh untuk Vite; lihat panduan instalasi untuk bundler lainnya
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url';

let maplibrePromise = null;
let cssLoaded = false;

/**
 * Memuat MapLibre GL dan CSS-nya saat diperlukan
 * @returns {Promise} Modul MapLibre GL
 */
async function loadMapLibre() {
    if (!maplibrePromise) {
        maplibrePromise = Promise.all([
            import('maplibre-gl'),
            loadMapLibreCSS()
        ]).then(([module]) => {
            module.setWorkerUrl(workerUrl);
            return module;
        });
    }
    return maplibrePromise;
}

/**
 * Memuat CSS MapLibre GL secara dinamis
 */
async function loadMapLibreCSS() {
    if (!cssLoaded) {
        await import('maplibre-gl/dist/maplibre-gl.css');
        cssLoaded = true;
    }
}

/**
 * Kelas pemuat MapLibre GL sesuai kebutuhan
 * Menyediakan API yang mirip dengan maplibregl, tetapi memuatnya saat diperlukan
 */
export class MapLibreLoader {
    constructor() {
        this.maplibregl = null;
    }

    /**
     * Membuat instans peta baru dan memuat MapLibre GL saat diperlukan
     * @param {Object} options - Opsi konfigurasi peta
     * @returns {Promise} Instans MapLibre GL Map
     */
    async createMap(options) {
        this.maplibregl = await loadMapLibre();
        return new this.maplibregl.Map(options);
    }

    /**
     * Mengambil pustaka MapLibre GL dan memuatnya saat diperlukan
     * @returns {Promise} Pustaka MapLibre GL
     */
    async getLibrary() {
        this.maplibregl = await loadMapLibre();
        return this.maplibregl;
    }
}

export default new MapLibreLoader();

Contoh penggunaan:

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

// Buat peta hanya saat diperlukan (misalnya saat menggulir atau berinteraksi)
async function initMap() {
    const map = await MapLibreLoader.createMap({
        style: 'https://data.lfmaps.fr/styles/bright',
        center: [6.1844, 48.6937],
        zoom: 12,
        container: 'map',
    });
    
    // Tambahkan kontrol, penanda, dan lainnya.
    const maplibregl = await MapLibreLoader.getLibrary();
    map.addControl(new maplibregl.NavigationControl());
}

Untuk fitur lanjutan dan API lengkap, lihat dokumentasi MapLibre GL JS

Menggunakan Leaflet? Tambahkan tile gratis dengan satu plugin

Leaflet tidak dapat membaca tile vektor secara langsung, jadi gunakan bersama plugin 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>

Plugin ini mendukung Leaflet 1.x — tile gratis yang sama, tanpa tagihan.

Tile peta gratis di 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"
    />
  )
}

Tanpa mapbox-gl atau token akses — react-map-gl terhubung langsung ke MapLibre GL.

Gaya tile peta gratis: bright, positron, dan liberty

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

Dibuat untuk kecepatan: pengiriman tile peta yang cepat ke seluruh dunia

Sangat cepat

Tile disajikan melalui CDN, sehingga peta tampil dalam sekejap

Andal

Waktu aktif 99.9%

Cakupan global

Data OpenStreetMap yang mencakup seluruh dunia

Mudah diintegrasikan

Cukup beberapa baris MapLibre GL atau Leaflet untuk menampilkan peta

Alternatif gratis untuk Google Maps dan Mapbox

Sama-sama menampilkan peta di halaman Anda. Biaya di akhir bulan sangat berbeda.

Penyedia tile peta berbayar

  • Paket gratis di awal, lalu biaya per pemuatan peta saat pemakaian meningkat
  • Kunci API yang harus dibuat, diamankan, dan diperbarui
  • Dasbor penggunaan, kuota, dan peringatan tagihan yang harus dipantau
  • Analitik yang mengumpulkan data pengguna peta Anda

LFMaps

  • Gratis pada semua tingkat lalu lintas — tidak ada batas paket gratis
  • Tanpa kunci API karena tidak perlu akun
  • Tak perlu dipantau: tempel URL gaya peta dan lanjutkan
  • Tanpa melacak Anda ataupun pengunjung Anda

Batasannya: LFMaps hanya menyediakan tile peta. Geocoding, perencanaan rute, dan petunjuk arah belokan demi belokan tidak termasuk dalam layanan ini.

Tile peta gratis: pertanyaan yang sering diajukan

Apakah LFMaps benar-benar gratis?

Ya. Tidak ada paket berbayar, kartu kredit, atau tagihan pemakaian, berapa pun lalu lintas Anda. LFMaps dibiayai sebagai proyek sampingan, seperti alat gratis lainnya di halaman ini.

Apakah saya memerlukan kunci API atau akun?

Tidak. Anda tidak perlu mendaftar atau memperbarui token. Arahkan gaya peta Anda ke URL LFMaps dan peta langsung berfungsi.

Apakah ada batas laju atau kuota untuk tile peta?

Tidak ada kuota atau batas laju yang ketat. Kami hanya meminta agar Anda tidak mengunduh seluruh kumpulan tile secara massal. Penggunaan peta biasa di situs web atau aplikasi diperbolehkan.

Apakah LFMaps berfungsi dengan Leaflet selain MapLibre GL?

Ya. MapLibre GL merender tile vektor secara langsung dan menjadi pilihan kami, tetapi Leaflet juga bisa digunakan dengan plugin maplibre-gl-leaflet.

Dari mana data peta berasal?

Dari OpenStreetMap, disajikan melalui OpenFreeMap. Data ini dibuat oleh komunitas, sehingga bisa tetap gratis.

Bisakah saya menggunakan LFMaps di situs web komersial?

Ya, termasuk untuk proyek komersial. Pastikan atribusi OpenStreetMap tetap terlihat pada peta — hanya itu persyaratannya.

Apakah Anda melacak pengunjung saya?

Tidak. Kami tidak mengumpulkan data pribadi atau memasang cookie pada permintaan tile, sehingga menambahkan peta tidak menambah kewajiban dalam kebijakan privasi Anda.

Apa bedanya dengan Google Maps atau Mapbox?

Keduanya menawarkan paket gratis, lalu mengenakan biaya per pemuatan peta ketika pemakaian meningkat. LFMaps tidak mengenakan biaya pemakaian: sepuluh maupun sepuluh juta tampilan peta tetap gratis.