Я следую вместе с руководством по следующей ссылке по использованию Google Maps API для создания функции поиска мест на карте:
Руководство по флаттеру Medium.com
Ниже приведен код, который, по моему мнению, составляет суть проблемы:
/**
* Retrieves the user's location
* NOTE: This pretty much does the same thing as _animateToUser,
* but I separated the two
*/
Future<LatLng> getUserLocation() async {
var currentLocation = <String, double>{};
final uLocation = LocationManager.Location();
try {
currentLocation = await uLocation.getLocation();
final lat = currentLocation["latitude"];
final lng = currentLocation["longitude"];
final center = LatLng(lat, lng);
return center;
} on Exception {
currentLocation = null;
return null;
}
}
/**
* Searches for locations using Google Maps API
*/
Future<void> _search() async {
try {
final center = await getUserLocation();
Prediction p = await PlacesAutocomplete.show(
context: context,
strictbounds: center == null ? false : true,
apiKey: kGoogleApiKey,
onError: onError,
mode: Mode.overlay,
language: "en",
location: center == null
? null
: Location(center.latitude, center.longitude),
radius: center == null ? null : 10000);
showDetailPlace(p.placeId);
} catch (e) {
return;
}
}
/**
* Shows details of a place
*/
Future<Null> showDetailPlace(String placeId) async {
if (placeId != null) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) =>
PlaceDetailWidget(placeId)),
);
}
} /**
* Retrieves the user's location
* NOTE: This pretty much does the same thing as _animateToUser,
* but I separated the two
*/
Future<LatLng> getUserLocation() async {
var currentLocation = <String, double>{};
final uLocation = LocationManager.Location();
try {
currentLocation = await uLocation.getLocation();
final lat = currentLocation["latitude"];
final lng = currentLocation["longitude"];
final center = LatLng(lat, lng);
return center;
} on Exception {
currentLocation = null;
return null;
}
}`
Проблема в том, что независимо от того, что я ввожу в строку поиска, она не будет автоматически заполнять / предлагать что-либо.
Пример:
В этом примере я хочу вызвать список мест, в которых есть слово grand, например, «Центральный вокзал».