diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 8108f76..d803875 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\Evaluation; use App\Models\Indicator; use App\Models\Land; use App\Models\Rule; @@ -27,6 +28,8 @@ public function petugas() $indicatorCount = Indicator::whereIn('id', function ($query) { $query->select('indicator_id')->from('rule'); })->count(); - return view('dashboard.petugas', compact('landCount', 'indicatorCount')); + + $evaluations = Evaluation::with('land.detailLands')->where('user_id', auth()->id())->get(); + return view('dashboard.petugas', compact('landCount', 'indicatorCount', 'evaluations')); } } diff --git a/public/assets/js/pages/customJs/dashboard/petugas.js b/public/assets/js/pages/customJs/dashboard/petugas.js new file mode 100644 index 0000000..04b0843 --- /dev/null +++ b/public/assets/js/pages/customJs/dashboard/petugas.js @@ -0,0 +1,50 @@ +var map, googleSat, marker, polygon; + +let evaluationElement = document.getElementById("evaluations"); +let evaluation = JSON.parse(evaluationElement.dataset.evaluations); + +document.addEventListener("DOMContentLoaded", function () { + initMap(); + map.invalidateSize(); + console.log(evaluation); + setEvaluationToMap(); +}); + +function initMap() { + map = L.map("map", { + attributionControl: false, + }).setView([-8.172495095862395, 113.69876818661332], 10); + + googleSat = L.tileLayer( + "http://{s}.google.com/vt?lyrs=s&x={x}&y={y}&z={z}", + { + maxZoom: 20, + subdomains: ["mt0", "mt1", "mt2", "mt3"], + } + ).addTo(map); +} + +function setEvaluationToMap() { + evaluation.forEach((evaluation) => { + let coordinates = evaluation.land.detail_lands.map((detail) => { + return [detail.lat, detail.lng]; + }); + + let cfValue = evaluation.cf_value * 100; + console.log(cfValue.toFixed(2)); + + polygon = L.polygon(coordinates, { + color: "blue", + fillColor: "blue", + fillOpacity: 0.5, + }).addTo(map); + + marker = L.marker(coordinates[0]) + .addTo(map) + .bindPopup( + `
Hasil presentase CF pada lahan
${ + evaluation.land.owner + }
${cfValue.toFixed(2)} %
` + ); + }); +} diff --git a/resources/views/dashboard/petugas.blade.php b/resources/views/dashboard/petugas.blade.php index 3f65f79..9d085eb 100644 --- a/resources/views/dashboard/petugas.blade.php +++ b/resources/views/dashboard/petugas.blade.php @@ -80,6 +80,7 @@
+
@@ -88,15 +89,6 @@ @push('other-js') - + @endpush @endsection