import 'dart:async'; import 'dart:collection'; import 'dart:io'; import 'dart:math' as Math; import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; class MapWidget extends StatefulWidget { const MapWidget({super.key, required this.markers, required this.polygons}); final Set? markers; final Set? polygons; @override State createState() => MapWidgetState(); } class MapWidgetState extends State { final Completer _controller = Completer(); final con = GoogleMap static CameraPosition _initialPos = const CameraPosition( target: LatLng(0, 0), zoom: 14.4746, ); @override void initState() { if (widget.markers != null) { setState(() { _initialPos = CameraPosition(target: widget.markers!.first.position, zoom: 14); }); } super.initState(); } @override Widget build(BuildContext context) { return ClipRRect( borderRadius: BorderRadius.circular(10.0), child: SizedBox( width: double.infinity, height: 550, child: GoogleMap( mapToolbarEnabled: true, mapType: MapType.hybrid, markers: widget.markers ?? {}, polygons: widget.polygons ?? {}, initialCameraPosition: _initialPos, onMapCreated: (GoogleMapController controller) { _controller.complete(controller); }, ), ), ); } }