32 lines
861 B
JavaScript
32 lines
861 B
JavaScript
// --- Fitur Geolocation ---
|
|
|
|
// Tambahkan tombol di dalam wadah zoom control
|
|
const geoBtn = document.createElement('button');
|
|
geoBtn.className = 'custom-layer-btn';
|
|
geoBtn.style.position = 'relative';
|
|
geoBtn.style.top = '0';
|
|
geoBtn.style.left = '0';
|
|
geoBtn.style.right = 'auto';
|
|
geoBtn.innerHTML = '<i class="fas fa-crosshairs fa-lg"></i>';
|
|
geoBtn.title = 'Lokasi Saya';
|
|
document.querySelector('.custom-zoom-control').appendChild(geoBtn);
|
|
|
|
let userMarker = null;
|
|
|
|
geoBtn.addEventListener('click', function() {
|
|
map.locate({setView: true, maxZoom: 16});
|
|
});
|
|
|
|
map.on('locationfound', function(e) {
|
|
if (userMarker) {
|
|
map.removeLayer(userMarker);
|
|
}
|
|
userMarker = L.marker(e.latlng).addTo(map)
|
|
.bindPopup("Anda berada di sini!").openPopup();
|
|
});
|
|
|
|
map.on('locationerror', function(e) {
|
|
alert("Gagal mendapatkan lokasi Anda.");
|
|
});
|
|
|