import 'dart:async'; import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:hmg_patient_app_new/core/app_assets.dart'; import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; import 'package:hmg_patient_app_new/theme/colors.dart'; class GMSMap extends StatelessWidget{ Completer? controller; final CameraPosition currentLocation; final Function(CameraPosition) onCameraMoved; final VoidCallback onCameraIdle; final MapType mapType; final bool compassEnabled; final bool myLocationEnabled; final bool showCenterMarker; GMSMap({super.key, required this.currentLocation ,required this.onCameraMoved,required this.onCameraIdle, this.mapType = MapType.normal,this.compassEnabled = false,this.showCenterMarker = false, this.myLocationEnabled = true,Completer? inputController}){ controller = inputController ?? Completer(); } @override Widget build(BuildContext context) { return Stack( children: [ GoogleMap( mapType: mapType, zoomControlsEnabled: true, myLocationEnabled: myLocationEnabled, myLocationButtonEnabled: false, compassEnabled: compassEnabled, initialCameraPosition: currentLocation, onCameraMove: (value) => onCameraMoved(value), onCameraIdle: ()=>onCameraIdle(), // padding: EdgeInsets.only(bottom: 300.h), onMapCreated: (GoogleMapController controller) { this.controller?.complete(controller); }, ), Visibility( visible: showCenterMarker, child: Align( alignment: Alignment.center, child: Icon(Icons.location_pin, size: 36.h, color: AppColors.primaryRedColor).paddingOnly(bottom: 24.h), ), ) ], ); } }