getAddressFromCoordinates method

Future<AddressComponent?> getAddressFromCoordinates({
  1. required double lat,
  2. required double long,
})

The function getAddressFromCoordinates retrieves address components based on latitude and longitude coordinates.

Args: lat (double): Latitude coordinate of the location. long (double): The long parameter in the getAddressFromCoordinates function represents the longitude coordinate of a location. Longitude is a geographic coordinate that specifies the east-west position of a point on the Earth's surface. It is measured in degrees, with values ranging from -180 degrees (west) to +

Returns: The function getAddressFromCoordinates is returning a Future<AddressComponent?>.

Implementation

Future<AddressComponent?> getAddressFromCoordinates({
  required double lat,
  required double long,
}) async {
  try {
    bool hasPermission = await _checkAndRequestLocationPermission();
    if (!hasPermission) {
      Permission.location.request();
      return null;
    }

    final position = Position(
      longitude: lat,
      latitude: long,
      timestamp: DateTime.now(),
      accuracy: 0.0,
      altitude: 0.0,
      altitudeAccuracy: 0.0,
      heading: 0.0,
      headingAccuracy: 0.0,
      speed: 0.0,
      speedAccuracy: 0.0,
    );

    List<Placemark> placemarks = await _getPlacemarks(position);

    AddressComponent addressComponent =
        _createAddressComponent(position, placemarks.first);

    return addressComponent;
  } catch (e) {
    throw Exception(e);
  }
}