fix(master-rule): set time request api

This commit is contained in:
arieeefajar 2025-06-12 14:22:20 +07:00
parent 786d771653
commit 8c356399d9
1 changed files with 71 additions and 6 deletions

View File

@ -67,6 +67,19 @@ function initMap() {
});
}
function fetchWithTimeout(url, options = {}, timeout = 10000) {
return Promise.race([
fetch(url, options),
new Promise((_, reject) =>
setTimeout(
() =>
reject(new Error("Request timeout, periksa koneksi Anda")),
timeout
)
),
]);
}
function getLocation() {
if (!navigator.geolocation) {
alert("Geolocation tidak didukung oleh browser ini.");
@ -89,7 +102,7 @@ function getLocation() {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
fetch(
fetchWithTimeout(
`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json&accept-language=id`
)
.then((response) => response.json())
@ -99,10 +112,17 @@ function getLocation() {
mapContainer.style.display = "block";
map.invalidateSize();
var address = `Desa ${data.address.village}, Kecamatan ${
data.address.township ? data.address.township : `-`
}, Kabupaten ${data.address.city}, Provinsi ${
data.address.state
console.log(data);
var address = `Desa ${
data.address.village || "-"
}, Kecamatan ${
data.address.township ||
data.address.suburb ||
data.address.city_district ||
"-"
}, Kabupaten ${data.address.city || "-"}, Provinsi ${
data.address.state || "-"
}`;
addressField.value = address;
@ -129,8 +149,53 @@ function getLocation() {
lngField.value = lng;
})
.catch((error) => {
alert("Error: " + error.message);
btnLocation.disabled = false;
btnLocation.innerHTML = `<i class="fa fa-location-arrow"></i> Dapatkan Lokasi Lahan!`;
alert("Terjadi kesalahan: " + error.message);
});
// fetch(
// `https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json&accept-language=id`
// )
// .then((response) => response.json())
// .then((data) => {
// btnLocation.classList.add("d-none");
// addressContainer.style.display = "block";
// mapContainer.style.display = "block";
// map.invalidateSize();
// var address = `Desa ${data.address.village}, Kecamatan ${
// data.address.township ? data.address.township : `-`
// }, Kabupaten ${data.address.city}, Provinsi ${
// data.address.state
// }`;
// addressField.value = address;
// map.setView([lat, lng], 16);
// if (currentMarker) {
// map.removeLayer(currentMarker);
// }
// currentMarker = L.marker([lat, lng], {
// icon: iconMarker,
// draggable: true,
// }).addTo(map);
// currentMarker.on("dragend", onPointerDragend);
// currentMarker
// .bindPopup(
// `<div class="text-center"><b>Anda berada di sini</b><br />Silahkan tentukan petak lahan.<br />Pastikan lokasi anda sudah benar.</div>`
// )
// .openPopup();
// latField.value = lat;
// lngField.value = lng;
// })
// .catch((error) => {
// alert("Error: " + error.message);
// });
},
function (error) {
alert("Error: " + error.message);