diff --git a/public/leaflet/layers-2x.png b/public/leaflet/layers-2x.png
new file mode 100644
index 0000000..200c333
Binary files /dev/null and b/public/leaflet/layers-2x.png differ
diff --git a/public/leaflet/layers.png b/public/leaflet/layers.png
new file mode 100644
index 0000000..1a72e57
Binary files /dev/null and b/public/leaflet/layers.png differ
diff --git a/public/leaflet/marker-icon-2x.png b/public/leaflet/marker-icon-2x.png
new file mode 100644
index 0000000..88f9e50
Binary files /dev/null and b/public/leaflet/marker-icon-2x.png differ
diff --git a/public/leaflet/marker-icon.png b/public/leaflet/marker-icon.png
new file mode 100644
index 0000000..950edf2
Binary files /dev/null and b/public/leaflet/marker-icon.png differ
diff --git a/public/leaflet/marker-shadow.png b/public/leaflet/marker-shadow.png
new file mode 100644
index 0000000..9fd2979
Binary files /dev/null and b/public/leaflet/marker-shadow.png differ
diff --git a/resources/js/data/tourisms/data-tourisms.js b/resources/js/data/tourisms/data-tourisms.js
index 0106273..54d4d9f 100644
--- a/resources/js/data/tourisms/data-tourisms.js
+++ b/resources/js/data/tourisms/data-tourisms.js
@@ -44,9 +44,9 @@ const dataTourismsColumns = [
`
+ `;
}
-
+
// Tampilkan tombol Edit jika user punya akses update
if (canUpdate) {
hasPrivilege = true;
@@ -65,13 +65,17 @@ const dataTourismsColumns = [
`
+ `;
}
- actionButtons += '';
+ actionButtons += "";
// Jika tidak memiliki akses, tampilkan teks "No Privilege"
- return gridjs.html(hasPrivilege ? actionButtons : 'No Privilege');
- }
+ return gridjs.html(
+ hasPrivilege
+ ? actionButtons
+ : 'No Privilege'
+ );
+ },
},
];
@@ -82,6 +86,15 @@ document.addEventListener("DOMContentLoaded", () => {
`${GlobalConfig.apiHost}`,
dataTourismsColumns
);
+ const customIcon = new L.Icon({
+ iconUrl: "/leaflet/marker-icon.png",
+ iconRetinaUrl: "leaflet/marker-icon-2x.png",
+ shadowUrl: "/leaflet/marker-shadow.png",
+ iconSize: [25, 41],
+ iconAnchor: [12, 41],
+ popupAnchor: [1, -34],
+ shadowSize: [41, 41],
+ });
table.processData = function (data) {
return data.data.map((item) => {
@@ -142,11 +155,14 @@ document.addEventListener("DOMContentLoaded", () => {
setTimeout(() => {
if (!map) {
map = L.map("map").setView([lat, long], 14);
-
+
// Tambahkan tile layer (peta dasar)
- L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
- attribution: '© OpenStreetMap contributors'
- }).addTo(map);
+ L.tileLayer(
+ "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
+ {
+ attribution: "© OpenStreetMap contributors",
+ }
+ ).addTo(map);
} else {
map.setView([lat, long], 14);
}
@@ -156,65 +172,73 @@ document.addEventListener("DOMContentLoaded", () => {
}
// Tambahkan marker untuk lokasi
- L.marker([lat, long]).addTo(map)
- .bindPopup(`${district}
Lat: ${lat}, Long: ${long}`)
+ L.marker([lat, long], { icon: customIcon })
+ .addTo(map)
+ .bindPopup(
+ `${district}
Lat: ${lat}, Long: ${long}`
+ )
.openPopup();
// Tambahkan GeoJSON ke dalam peta
fetch(`/storage/maps/tourisms/${district.toUpperCase()}.json`)
- .then((res) => res.json())
- .then((geojson) => {
- let colorMapping = {
- BJ: "rgb(235, 30, 30)",
- BA: "rgb(151, 219, 242)",
- CA: "rgb(70, 70, 165)",
- "P-2": "rgb(230, 255, 75)",
- HL: "rgb(50, 95, 40)",
- HPT: "rgb(75, 155, 55)",
- HP: "rgb(125, 180, 55)",
- W: "rgb(255, 165, 255)",
- PTL: "rgb(0, 255, 205)",
- "IK-2": "rgb(130, 185, 210)",
- "P-3": "rgb(175, 175, 55)",
- PS: "rgb(5, 215, 215)",
- PD: "rgb(235, 155, 60)",
- PK: "rgb(245, 155, 30)",
- HK: "rgb(155, 0, 255)",
- KPI: "rgb(105, 0, 0)",
- MBT: "rgb(95, 115, 145)",
- "P-4": "rgb(185, 235, 185)",
- TB: "rgb(70, 150, 255)",
- "P-1": "rgb(200, 245, 70)",
- TR: "rgb(215, 55, 0)",
- THR: "rgb(185, 165, 255)",
- TWA: "rgb(210, 190, 255)",
- };
- var geoLayer = L.geoJSON(geojson, {
- style: function (feature) {
- let htmlString = feature.properties.description.toString();
- let match = htmlString.match(
- /