Я использую флаттерную карту и пакет геолокации для получения текущего местоположения и отображения на карте, но я получаю ошибку, как показано ниже
Получатель 'latitude' был вызван для нуля.Получатель: null Пробный вызов: широта
Я прошел через эту проблему, но не помог https://github.com/johnpryan/flutter_map/issues/124
Я использовал его в виджете с состоянием
LatLng _center ;
Position currentLocation;
Future<Position> locateUser() async {
return Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
}
getUserLocation() async {
currentLocation = await locateUser();
setState(() {
_center = LatLng(currentLocation.latitude, currentLocation.longitude);
});
print('center $_center');
}
@override
void initState() {
super.initState();
getUserLocation();
}
Этовиджет, куда я звоню getUserLocation ()
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title: Text('Plants Watch'),
backgroundColor: Colors.green[700],
actions: <Widget>[
IconButton(
icon: Icon(Icons.exit_to_app),
onPressed: () {
BlocProvider.of<AuthenticationBloc>(context).dispatch(
LoggedOut(),
);
},
)
],
),
body: Stack(
children: <Widget>[
new FlutterMap(
options: new MapOptions(
center: new LatLng(currentLocation.latitude, currentLocation.longitude),
maxZoom: 13.0,
),
layers: [
new TileLayerOptions(
urlTemplate: "https://api.tiles.mapbox.com/v4/"
"{id}/{z}/{x}/{y}@2x.png?access_token={accessToken}",
additionalOptions: {
'accessToken': '<accessToken>',
'id': 'mapbox.streets',
},
),
new MarkerLayerOptions(
markers: [
new Marker(
width: 80.0,
height: 80.0,
point: LatLng(currentLocation.latitude, currentLocation.longitude),
builder: (ctx) =>
new Container(
child: new IconButton(
icon: Icon(Icons.location_on),
color: Colors.green[700],
iconSize: 45.0,
onPressed: (){
print('Marker Tapped');
},
),
),
),
],
),
],
),
Padding(
padding: const EdgeInsets.all(16.0),
child: Align(
alignment: Alignment.bottomRight,
child: FloatingActionButton(
backgroundColor: Colors.green[700],
child: Icon(Icons.add),
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context)=> PostPage()));
},
),
),
)
],
)
);
}
}
I just want to remove the no such method error on building app.