autocomplete method
Future<PlacesAutocompleteResponse>
autocomplete({
- required String input,
- PlaceAutocompleteRequestOptions? options,
Implementation
Future<PlacesAutocompleteResponse> autocomplete({
required String input,
PlaceAutocompleteRequestOptions? options,
}) async {
if (input == "") {
throw ArgumentError.value(input, "Cannot search an empty string");
}
final requestURL = Uri.parse(
"https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input${options ?? ""}&key=$apiKey");
// Making the request
final response = await client.get(requestURL);
if (response.statusCode == 200) {
final placeAutocompleteResponseMap =
json.decode(response.body) as Map<String, dynamic>;
final placeAutocompleteResponse =
PlacesAutocompleteResponse.fromJson(placeAutocompleteResponseMap);
if (placeAutocompleteResponse.status != PlacesAutocompleteStatus.OK) {
throw Exception(
"${handlePlacesAutocompleteStatus(placeAutocompleteResponse.status)} ($requestURL): ${placeAutocompleteResponse.errorMessage}");
}
return placeAutocompleteResponse;
} else {
throw const HttpException("Http Places autocomplete API request failed");
}
}