Update: 2026-06-12 22:40:40

This commit is contained in:
Hamza-Ayed
2026-06-12 22:40:40 +03:00
parent f907212c57
commit 0ae368dbc8
24 changed files with 1197 additions and 303 deletions

View File

@@ -5,6 +5,7 @@ import 'package:intaleq_maps/intaleq_maps.dart';
import '../../../../constant/api_key.dart';
import '../../../../controller/functions/location_controller.dart';
import '../../../../controller/home/captin/home_captain_controller.dart';
import '../../../../controller/functions/country_logic.dart';
class OsmMapView extends StatelessWidget {
const OsmMapView({super.key});
@@ -22,27 +23,77 @@ class OsmMapView extends StatelessWidget {
locationController.myLocation.longitude);
final double currentHeading = locationController.heading;
return IntaleqMap(
apiKey: AK.mapSaasKey,
initialCameraPosition: CameraPosition(
target: currentLocation,
zoom: 15,
bearing: currentHeading,
),
markers: {
Marker(
markerId: const MarkerId('myLocation'),
position: currentLocation,
rotation: currentHeading,
icon: homeCaptainController.carIcon,
anchor: const Offset(0.5, 0.5),
flat: true,
zIndex: 2,
)
},
onMapCreated: (IntaleqMapController controller) {
// You can assign this controller if needed
},
final cityPolygon = CountryLogic.getCurrentCityPolygon();
final bool inServiceArea = CountryLogic.isPointInPolygon(currentLocation, cityPolygon);
return Stack(
children: [
IntaleqMap(
apiKey: AK.mapSaasKey,
initialCameraPosition: CameraPosition(
target: currentLocation,
zoom: 15,
bearing: currentHeading,
),
markers: {
Marker(
markerId: const MarkerId('myLocation'),
position: currentLocation,
rotation: currentHeading,
icon: homeCaptainController.carIcon,
anchor: const Offset(0.5, 0.5),
flat: true,
zIndex: 2,
)
},
polygons: {
Polygon(
polygonId: const PolygonId('city_polygon'),
points: cityPolygon,
fillColor: Colors.green.withOpacity(0.15),
strokeColor: Colors.green[800]!,
strokeWidth: 2,
)
},
onMapCreated: (IntaleqMapController controller) {
// You can assign this controller if needed
},
),
if (!inServiceArea)
Positioned(
bottom: 20,
left: 20,
right: 20,
child: Container(
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
decoration: BoxDecoration(
color: Colors.redAccent.withOpacity(0.9),
borderRadius: BorderRadius.circular(12),
boxShadow: const [
BoxShadow(color: Colors.black26, blurRadius: 4, offset: Offset(0, 2))
],
),
child: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.warning_amber_rounded, color: Colors.white),
SizedBox(width: 8),
Expanded(
child: Text(
'الخدمة غير متوفرة في منطقتك حالياً',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 14,
),
),
),
],
),
),
),
],
);
});
}