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; final LatLng _center = const LatLng(45.521563, -122.677433); void _onMapCreated(GoogleMapController controller) { mapController = controller; } void _onCameraIdle() { // print(mapController.getLatLng()); } @override Widget build(BuildContext context) { return GoogleMap( onMapCreated: _onMapCreated, initialCameraPosition: CameraPosition( target: _center, zoom: 11.0, ), onCameraIdle: _onCameraIdle, ); } } // GeoCode geoCode = GeoCode(); // String _currentCityName = "..."; // final Debounce _debounce = Debounce(Duration(seconds: 3)); // final LatLng _center = const LatLng(45.521563, -122.677433); // late GoogleMapController mapController; // void _onMapCreated(GoogleMapController controller) { // mapController = controller; // } // // void _setCurrentCityName() async { // if (mapController.camera.zoom < 9) { // return; // Don't bother if the view is too wide // } // var currentCoordinates = mapController.camera.center; // String? city; // try{ // List placemarks = await placemarkFromCoordinates(currentCoordinates.latitude, currentCoordinates.longitude); // city = placemarks[0].locality.toString(); // } catch (e) { // debugPrint("Error: $e"); // try { // Address address = await geoCode.reverseGeocoding(latitude: currentCoordinates.latitude, longitude: currentCoordinates.longitude); // if (address.city == null || address.city.toString().contains("Throttled!")){ // throw Exception("Probably rate limited"); // } // city = address.city.toString(); // } catch (e) { // debugPrint("Error: $e"); // } // } // if (city != null) { // setState(() { // _currentCityName = city!; // }); // } else { // _debounce(() async {_setCurrentCityName();}); // } // }