В моем приложении я хочу, чтобы пользователь печатал место (и flutter_google_places должен показывать подсказки мест). Затем я хочу получить широту и долготу того места, куда он нажимает.
Проблема: я видел этот ответ: Как создать простой поиск адресов карт Google с автозаполнением во флаттере и получить широту и долготу ?
, что похоже на мой вопрос, но у меня не работает!
Мой код:
Completer<GoogleMapController> _controller = Completer();
final api_key=API_KEY;
GoogleMapsPlaces _places = GoogleMapsPlaces(apiKey: API_KEY);
LocationData user_location=LoginPage.LD;
@override
Widget build(BuildContext context) {
CameraPosition cuurent_location_of_user = CameraPosition(
target: LatLng(user_location.latitude,user_location.longitude),
zoom: 16,
);
return Scaffold(
body: Stack(
children: <Widget>[
Container(
child:GoogleMap(
mapType: MapType.hybrid,
initialCameraPosition: cuurent_location_of_user,
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
)
),
Container(
alignment: Alignment.center,
child: RaisedButton(
onPressed: () async {
Prediction p = await PlacesAutocomplete.show(
context: context, apiKey: api_key);
displayPrediction(p);
},
)
),
],
),
);
}
Future<Null> displayPrediction(Prediction p) async {
if (p != null) {
PlacesDetailsResponse detail =
await _places.getDetailsByPlaceId(p.placeId);
var placeId = p.placeId;
double lat = detail.result.geometry.location.lat;
double lng = detail.result.geometry.location.lng;
var address = await Geocoder.local.findAddressesFromQuery(p.description);
print(lat);
print(lng);
}
}
Если я попытаюсь: print (p .нанизывать()); Он возвращает ноль. Я не могу найти проблему в своем коде. Я также включил API мест в облачной службе Google и также взял самый последний API_KEY
Спасибо