如何使用GoogleMapController更改MapType?

时间:2019-10-01 23:06:42

标签: flutter

我想使用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),
                  ),
                ],
              ),
            ),
          )
        ],
      ),
    );
  }
  }

0 个答案:

没有答案