Files
Fondex-Driver/lib/app/parcel_screen/parcel_tracking_screen.dart
2025-12-08 23:25:00 +05:00

98 lines
4.0 KiB
Dart

import 'dart:io';
import 'package:driver/constant/constant.dart';
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart' as flutterMap;
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:latlong2/latlong.dart' as location;
import '../../controllers/parcel_tracking_controller.dart';
import '../../themes/app_them_data.dart';
import '../../themes/theme_controller.dart';
class ParcelTrackingScreen extends StatelessWidget {
const ParcelTrackingScreen({super.key});
@override
Widget build(BuildContext context) {
final themeController = Get.find<ThemeController>();
final isDark = themeController.isDark.value;
return GetX<ParcelTrackingController>(
init: ParcelTrackingController(),
builder: (controller) {
return Scaffold(
appBar: AppBar(
elevation: 2,
backgroundColor: AppThemeData.primary300,
title: Text("Map view".tr),
leading: InkWell(
onTap: () {
Get.back();
},
child: const Icon(
Icons.arrow_back,
)),
),
body: controller.isLoading.value
? Constant.loader()
: Constant.selectedMapType == 'osm'
? flutterMap.FlutterMap(
mapController: controller.osmMapController,
options: flutterMap.MapOptions(
initialCenter: location.LatLng(
Constant.userModel?.location?.latitude ?? 45.521563,
Constant.userModel?.location?.longitude ??
-122.677433),
initialZoom: 10,
),
children: [
flutterMap.TileLayer(
urlTemplate:
'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
userAgentPackageName: Platform.isAndroid
? 'felix.fondex.driver'
: 'felix.fondex.driver',
),
flutterMap.MarkerLayer(markers: controller.osmMarkers),
if (controller.routePoints.isNotEmpty)
flutterMap.PolylineLayer(
polylines: [
flutterMap.Polyline(
points: controller.routePoints,
strokeWidth: 5.0,
color: AppThemeData.primary300,
),
],
),
],
)
: Obx(
() => GoogleMap(
myLocationEnabled: true,
myLocationButtonEnabled: true,
mapType: MapType.terrain,
zoomControlsEnabled: false,
polylines:
Set<Polyline>.of(controller.polyLines.values),
padding: const EdgeInsets.only(
top: 22.0,
),
markers: Set<Marker>.of(controller.markers.values),
onMapCreated: (GoogleMapController mapController) {
controller.mapController = mapController;
},
initialCameraPosition: CameraPosition(
zoom: 15,
target: LatLng(
Constant.userModel?.location?.latitude ?? 45.521563,
Constant.userModel?.location?.longitude ??
-122.677433,
),
),
),
),
);
},
);
}
}