search static method
Future<List<FormattedLocation> >
search({
- required Locale locale,
- required String query,
- SearchFilters? searchFilters,
Implementation
static Future<List<FormattedLocation>> search({
required Locale locale,
required String query,
SearchFilters? searchFilters,
}) async {
var url = Uri.parse("https://nominatim.openstreetmap.org/search");
url = url.replace(
queryParameters: {
"q": query,
"format": "jsonv2",
"namedetails": "1",
"accept-language": locale.languageCode,
"addressdetails": "1",
"polygon_geojson": "1",
"extratags": "1",
"polygon_threshold": "1",
if (searchFilters != null) ...(searchFilters.toJson())
},
);
var response = await http.get(url);
var parsed = jsonDecode(utf8.decode(response.bodyBytes));
if (parsed is List) {
List<FormattedLocation> resList = [];
for (var loc in parsed) {
try {
var res = FormattedLocation.fromJson(loc);
resList.add(res);
} catch (e) {
if (kDebugMode) {
print(e);
}
}
}
return Future<List<FormattedLocation>>.value(resList);
} else {
throw Exception(parsed);
}
}