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 petaconst 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();
const customIcon = L.icon({iconUrl: 'path/to/icon.png',iconSize: [38, 38], // Ukuran ikoniconAnchor: [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 penggunamap.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.");
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 awalL.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:
- Simpan data lokasi ke database menggunakan API backend.
- Ambil data dari backend dalam format GeoJSON atau array.
- Tampilkan data ke peta dengan
L.geoJSON
atauL.marker
.
10. Integrasi dengan Backend
Pada frontend:
fetch('http://example.com/api/locations') .then(response => response.json()) .then(data => { L.geoJSON(data).addTo(map);
});