getAddress static method
Converts latitude/longitude coordinates to a human-readable address.
Returns "Address not found" if the request fails or no address is found. Always returns addresses in English.
Implementation
static Future<String> getAddress(double lat, double lng) async {
try {
final uri = Uri.parse(
'$_nominatimEndpoint?format=json&lat=$lat&lon=$lng'
'&zoom=18&addressdetails=1&accept-language=en',
);
final response = await http
.get(
uri,
headers: {'User-Agent': _userAgent, 'Accept': 'application/json'},
)
.timeout(
const Duration(seconds: 10),
onTimeout: () => throw Exception('Request timed out'),
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body) as Map<String, dynamic>;
final displayName = data['display_name'] as String?;
if (displayName != null && displayName.isNotEmpty) {
return displayName;
}
}
return 'Address not found';
} catch (_) {
return 'Address not found';
}
}