我想使用GoogleMapController更改MapType。 我使用了一个floatActionButtom来改变这一点。 GoolgeMapOptions已从GoogleMap小部件中删除,我无法使用此属性。 现在我不知道要使用什么代码。 我想通过onMapType函数将Maptype(从普通类型更改为卫星类型),但是不能在新版本的GoogleMap中使用updateMapOptions和GoolgeMapOptions。
class MapScreen extends StatefulWidget{
@override
State<StatefulWidget> createState() => new MapScreenState();
}
class MapScreenState extends State<MapScreen>{
GoogleMapController mapController;
MapType currentMaptype=MapType.normal;
final myGoogleMap=GlobalKey();
void _onMapController(GoogleMapController controller){
mapController=controller;
}
void _onMaptype(){
if(currentMaptype==MapType.normal){
mapController.updateMapOptions(
GoogleMapOptions(mapType: MapType.satellite);
currentMaptype=MapType.satellite;
}
else{
mapController.updateMapOptions(
GoogleMapOptions(mapType: MapType.normal);
currentMaptype=MapType.normal;
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
body: new Stack(
alignment: Alignment.bottomCenter,
children: <Widget>[
new GoogleMap(
initialCameraPosition:CameraPosition(
target: LatLng(85.254, 74.542)) ,
onMapCreated:_onMapController,
mapType: currentMaptype,
),
new Align(
alignment: Alignment.bottomLeft,
child: new Padding(
padding: EdgeInsets.only(bottom: 25, left: 8) ,
child: new Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
new FloatingActionButton(
onPressed: _onMaptype,
backgroundColor: Colors.green,
child: new Icon(Icons.map, color: Colors.white,size: 30),
),
],
),
),
)
],
),
);
}
}