// مثال بسيط بـ JavaScript function generateScanResult(lat, lng) { const targets = ['ذهب', 'فضة', 'مياه جوفية', 'فراغ/كهف', 'نحاس', 'آثار']; const result = { target: targets[Math.floor(Math.random() * targets.length)], depth: Math.floor(Math.random() * 30) + 8, // 8-37 متر confidence: Math.floor(Math.random() * 25) + 72, // 72-96% signal: (Math.random() * 40 + 60).toFixed(1) + '%' }; // زيادة فرص الذهب في مناطق تاريخية (مثال) if (isHistoricalArea(lat, lng)) { result.confidence += 15; if (Math.random() > 0.6) result.target = 'ذهب'; } return result; }import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter_heatmap/google_maps_flutter_heatmap.dart'; // إذا استخدمت الحزمة class HeatmapScreen extends StatefulWidget { const HeatmapScreen({super.key}); @override State createState() => _HeatmapScreenState(); } class _HeatmapScreenState extends State { GoogleMapController? mapController; Set _heatmaps = {}; // بيانات النتائج السابقة (من Firestore أو قاعدة البيانات) final List> scanResults = [ {"lat": 21.5433, "lng": 39.1728, "intensity": 0.9}, // جدة مثال {"lat": 21.5500, "lng": 39.1800, "intensity": 0.75}, // ... أضف المزيد ]; void _addHeatmap() { final heatmapPoints = scanResults.map((result) { return WeightedLatLng( point: LatLng(result['lat'], result['lng']), intensity: result['intensity'], // من 0.0 إلى 1.0 ); }).toSet(); setState(() { _heatmaps = { Heatmap( heatmapId: const HeatmapId('scans_heatmap'), points: heatmapPoints, radius: 40, // حجم النقطة opacity: 0.7, gradient: HeatmapGradient( colors: const [ Colors.green, // منخفض Colors.yellow, Colors.orange, Colors.red, // عالي ], startPoints: const [0.2, 0.5, 0.7, 1.0], ), ) }; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('خريطة حرارية - مناطق محتملة')), body: GoogleMap( initialCameraPosition: const CameraPosition( target: LatLng(21.5433, 39.1728), // جدة / مكة zoom: 10, ), onMapCreated: (controller) { mapController = controller; _addHeatmap(); }, heatmaps: _heatmaps, myLocationEnabled: true, mapType: MapType.hybrid, // صور أقمار صناعية ), floatingActionButton: FloatingActionButton( onPressed: _addHeatmap, child: const Icon(Icons.thermostat), ), ); } }

تعليقات

المشاركات الشائعة من هذه المدونة