Проблема в том, что пакет google_maps_flutter требует разрешения для доступа к вашему местоположению, но в пакете нет собственных кодов для запроса этого разрешения.
Так что вам нужно написать собственный код или просто установить другой пакет, который может получить это разрешение.
Установите это: https://pub.dartlang.org/packages/location
Тогда:
getLocationPermission() async {
final Location location = new Location();
try {
location.requestPermission(); //to lunch location permission popup
} on PlatformException catch (e) {
if (e.code == 'PERMISSION_DENIED') {
print('Permission denied');
}
}
}
Или, если вам нужен более надежный код, это мой код для какого-то проекта (с пакетом местоположения):
//Show some loading indicator depends on this boolean variable
bool askingPermission = false;
@override
void initState() {
this.getLocationPermission();
super.initState();
}
Future<bool> getLocationPermission() async {
setState(() {
this.askingPermission = true;
});
bool result;
final Location location = Location();
try {
if (await location.hasPermission())
result = true;
else {
result = await location.requestPermission();
}
print('getLocationPermission: '
'${result ? 'Access Allowed' : 'Access Denied'}');
} catch (log, trace) {
result = false;
print('getLocationPermission/log: $log');
print('getLocationPermission/trace: $trace');
} finally {
setState(() {
this.askingPermission = false;
});
}
return result;
}