Dasar Menggunakan Leaflet.js untuk Tracking dan GIS

leaflet tracking

Dasar Menggunakan Leaflet.js untuk Tracking dan GIS

Leaflet.js adalah pustaka JavaScript ringan untuk membuat peta interaktif dan mudah dipahami untuk para developer baik android, ios, dan web. Dalam aplikasi tracking atau GIS (Geographic Information System), Leaflet sangat berguna karena mendukung banyak fitur peta, seperti marker, layer, heatmap, routing, dan lainnya.

Untuk pelacakan lokasi nomor telepon atau lokasi posisi seseorang terkadang leaflet menjadi  map andalan para developer selain Google Maps. Bahkan 10 perintah leaflet.js yang banyak diminati seperti poligon, popup, circle, dan lain - lain.

Berikut adalah dasar-dasar menggunakan Leaflet.js untuk tracking dan GIS:

1. Instalasi Leaflet.js

Leaflet dapat digunakan melalui CDN atau diinstal secara lokal.

Menggunakan CDN:

Tambahkan berikut ke file HTML Anda:

<!-- Leaflet CSS -->

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />

<!-- Leaflet JS -->

<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>

Instalasi Lokal:

Jika Anda menggunakan npm:

npm install leaflet


2. Membuat Peta Dasar

Gunakan elemen <div> untuk menampilkan peta.

Contoh:

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Peta Dasar dengan Leaflet.js</title>
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
    <style>
        #map {
            height: 500px; /* Tinggi peta */
        }
    </style>
</head>
<body>
    <h1>Peta Interaktif</h1>
    <div id="map"></div>
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
    <script>
        // Inisialisasi peta
        const map = L.map('map').setView([0, 0], 2); // Koordinat default (latitude, longitude)

        // Tambahkan tile layer (OpenStreetMap)
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            attribution: '© OpenStreetMap contributors'
        }).addTo(map);
    </script>
</body>
</html>

3. Menambahkan Marker

Marker digunakan untuk menunjukkan lokasi pada peta.

Contoh:

L.marker([51.505, -0.09]).addTo(map)
    .bindPopup("Ini marker.").openPopup();

Marker dengan Ikon Kustom:
const customIcon = L.icon({
    iconUrl: 'path/to/icon.png',
    iconSize: [38, 38], // Ukuran ikon
    iconAnchor: [19, 38] // Titik jangkar
});

L.marker([51.505, -0.09], { icon: customIcon }).addTo(map)
    .bindPopup("Marker dengan ikon kustom.");

4. Geolocation API untuk Tracking

Gunakan Geolocation API untuk mendapatkan lokasi pengguna.

Contoh:

if ("geolocation" in navigator) {
    navigator.geolocation.getCurrentPosition((position) => {
        const lat = position.coords.latitude;
        const lng = position.coords.longitude;

        // Tampilkan lokasi pengguna
        map.setView([lat, lng], 13);
        L.marker([lat, lng]).addTo(map)
            .bindPopup("Lokasi Anda!").openPopup();
    });
} else {
    alert("Geolocation tidak didukung di browser Anda.");
}

5. Menambahkan Layer

Layer digunakan untuk menampilkan data tambahan, seperti jalur, poligon, atau data GIS.

Poligon:

const polygon = L.polygon([
    [51.509, -0.08],
    [51.503, -0.06],
    [51.51, -0.047]
]).addTo(map)
  .bindPopup("Ini poligon.");

Polyline (Jalur):
const polyline = L.polyline([
    [51.505, -0.09],
    [51.51, -0.1],
    [51.51, -0.12]
]).addTo(map)
  .bindPopup("Ini jalur.");

6. Menambahkan Heatmap

Gunakan plugin Leaflet.heat untuk membuat heatmap.

Tambahkan Plugin:

<script src="https://unpkg.com/leaflet.heat/dist/leaflet-heat.js"></script>
const heat = L.heatLayer([
    [51.505, -0.09, 0.5], // [latitude, longitude, intensitas]
    [51.51, -0.1, 0.8],
    [51.51, -0.12, 0.3]
], { radius: 25 }).addTo(map);

7. Menambahkan Routing (Navigasi)

Gunakan Leaflet Routing Machine untuk menambahkan fitur navigasi.

Tambahkan Plugin:

<script src="https://unpkg.com/leaflet-routing-machine/dist/leaflet-routing-machine.js"></script>
L.Routing.control({
    waypoints: [
        L.latLng(51.505, -0.09), // Lokasi awal
        L.latLng(51.515, -0.1)   // Lokasi tujuan
    ]
}).addTo(map);

8. Menampilkan Data GIS dari GeoJSON

Gunakan GeoJSON untuk memvisualisasikan data GIS.

Contoh:

const geojsonData = {
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [-0.09, 51.505]
            },
            "properties": {
                "name": "Lokasi 1"
            }
        }
    ]
};

L.geoJSON(geojsonData, {
    onEachFeature: function (feature, layer) {
        layer.bindPopup(feature.properties.name);
    }
}).addTo(map);

9. Menyimpan dan Mengelola Data Lokasi

Gunakan backend (seperti Node.js atau PHP) untuk menyimpan lokasi di database, lalu tampilkan kembali menggunakan Leaflet.

Langkah:

  1. Simpan data lokasi ke database menggunakan API backend.
  2. Ambil data dari backend dalam format GeoJSON atau array.
  3. Tampilkan data ke peta dengan L.geoJSON atau L.marker.

10. Integrasi dengan Backend

Pada frontend:

fetch('http://example.com/api/locations') .then(response => response.json()) .then(data => { L.geoJSON(data).addTo(map); 

 });

Lebih baru Lebih lama

نموذج الاتصال