import 'package:fast_network_navigation/structs/landmark.dart'; import 'package:fast_network_navigation/utils/get_landmarks.dart'; import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; class MapWidget extends StatefulWidget { @override State createState() => _MapWidgetState(); } class _MapWidgetState extends State { late GoogleMapController mapController; // coordinates of Paris CameraPosition _cameraPosition = CameraPosition( target: LatLng(48.8566, 2.3522), zoom: 11.0, ); Set markers = {}; void _onMapCreated(GoogleMapController controller) { mapController = controller; drawLandmarks(); } void _onCameraIdle() { // print(mapController.getLatLng(ScreenCoordinate(x: 0, y: 0))); } void drawLandmarks() async { // (re)draws landmarks on the map List landmarks = await fetchLandmarks(); setState(() { for (Landmark landmark in landmarks) { markers.add(Marker( markerId: MarkerId(landmark.name), position: LatLng(landmark.location[0], landmark.location[1]), infoWindow: InfoWindow(title: landmark.name, snippet: landmark.type.name), )); } }); } @override Widget build(BuildContext context) { return GoogleMap( onMapCreated: _onMapCreated, initialCameraPosition: _cameraPosition, onCameraIdle: _onCameraIdle, // onLongPress: , markers: markers, ); } }