我有以下代码来设置地图叠加层的大小。请注意,宽度是根据MediaQuery设置的。高度也是这样设置的,但是它总是与底部导航栏重叠
void buildMap() async {
if (mapOverlayController != null) return;
var mq = MediaQuery.of(context);
// add delay so overlay is positioned correctly
await new Future<Null>.delayed(new Duration(milliseconds: 20));
mapOverlayController = GoogleMapOverlayController.fromSize(
width: mq.size.width,
height: 300.0,
options: GoogleMapOptions(
trackCameraPosition: true,
),
);
mapOverlayController.mapController.addListener(_onMapChanged);
mapOverlayController.overlayController.activateOverlay();
setState(() {});
}
Widget renderMap() {
if (mapOverlayController == null) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 150.0,
width: 150.0,
child: new CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.redAccent),
value: null,
strokeWidth: 7.0,
),
),
new Container(
margin: const EdgeInsets.only(top: 25.0),
child: new Center(
child: new Text(
"Loading.. please wait...",
),
),
),
]));
} else {
return GoogleMapOverlay(controller: mapOverlayController);
}
}
我希望地图的高度包括地图栏下方和底部导航栏上方的所有区域
答案 0 :(得分:0)
不幸的是,那些Google Map软件包没有集成在flutter的小部件树中,只是作为本机视图挂在flutter视图的顶部。
根据您的用例,如果您只需要地图的图像(带有标记或区域),则可以使用Google static maps api,调用其HTTP端点并获取图像。
如果您确实需要可调整的地图,则需要根据需要修改本机代码本身。