ambito/lib/src/widgets/map/map_widget.dart

65 lines
1.5 KiB
Dart
Raw Normal View History

2024-12-07 20:53:13 +01:00
import 'dart:async';
2024-12-09 12:17:12 +01:00
import 'dart:collection';
import 'dart:io';
import 'dart:math' as Math;
2024-12-07 20:53:13 +01:00
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<Marker>? markers;
final Set<Polygon>? polygons;
@override
State<StatefulWidget> createState() => MapWidgetState();
}
class MapWidgetState extends State<MapWidget> {
final Completer<GoogleMapController> _controller =
Completer<GoogleMapController>();
2024-12-09 12:17:12 +01:00
final con = GoogleMap
2024-12-07 20:53:13 +01:00
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,
2024-12-09 12:17:12 +01:00
height: 550,
child: GoogleMap(
mapToolbarEnabled: true,
mapType: MapType.hybrid,
markers: widget.markers ?? {},
polygons: widget.polygons ?? {},
initialCameraPosition: _initialPos,
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
),
2024-12-07 20:53:13 +01:00
),
);
}
2024-12-09 12:17:12 +01:00
2024-12-07 20:53:13 +01:00
}