autocomplete method
Future<PlacesAutocompleteResponse>
autocomplete(
- String input, {
- String? sessionToken,
- num? offset,
- Location? origin,
- Location? location,
- num? radius,
- String? language,
- List<String> types = const [],
- List<Component> components = const [],
- bool strictBounds = false,
- String? region,
})
Implementation
Future<PlacesAutocompleteResponse> autocomplete(
String input, {
String? sessionToken,
num? offset,
Location? origin,
Location? location,
num? radius,
String? language,
List<String> types = const [],
List<Component> components = const [],
bool strictBounds = false,
String? region,
}) async {
// 2. body JSON
final body = {
'input': input,
if (language != null) 'languageCode': language,
if (region != null) 'regionCode': region,
/// if (offset != null) 'offset': offset,
if (sessionToken != null) 'sessionToken': sessionToken,
if (location != null && radius != null)
'locationBias': {
'circle': {
'center': {'latitude': location.latitude, 'longitude': location.longitude},
'radius': radius.toDouble(),
},
},
if (types.isNotEmpty) 'types': types,
};
// 3. headers
final headers = {
'Content-Type': 'application/json',
if (apiKey != null) 'X-Goog-Api-Key': apiKey!,
...?apiHeaders,
};
// 4. POST
final res = await doPost(url.toString(), jsonEncode(body), headers: headers);
// 5. adapta respuesta nueva a tu DTO viejo
return _decodeAutocompleteResponseNew(res);
}