reverseGeocode method

Future<SearchResult?> reverseGeocode({
  1. required RaliPosition position,
  2. Position? userPosition,
})

//////////// //////////// Retrieves place information for given coordinates

Implementation

// III.D - Reverse Geocoding
///////////////
/// Retrieves place information for given coordinates
Future<SearchResult?> reverseGeocode({
  required RaliPosition position,
  geo.Position? userPosition,
}) async {
  try {
    final url = Uri.https(
      _baseUrl,
      '$_geocodingPath/${position.lng},${position.lat}.json',
      {
        'access_token': accessToken,
        'types': 'address,poi,place,neighborhood',
      },
    );

    final response = await http.get(url);

    if (response.statusCode == 200) {
      final jsonData = json.decode(response.body);
      final features = jsonData['features'] as List;

      if (features.isNotEmpty) {
        return SearchResult.fromJson(features[0], userPosition: userPosition);
      }

      return null;
    } else {
      throw HttpException('Failed to reverse geocode: ${response.statusCode}');
    }
  } catch (e) {
    print('Reverse geocoding error: $e');
    return null;
  }
}