如何为 google_maps_flutter 设置缩放级别

Posted

技术标签:

【中文标题】如何为 google_maps_flutter 设置缩放级别【英文标题】:How to Set Zoom Level For google_maps_flutter 【发布时间】:2021-11-27 04:17:18 【问题描述】:

我正在使用 google_maps_flutter 包,并且 myLocationButton 的缩放级别在按下时设置为我的上一个缩放级别。我想在按下 myLocationButton 时重置缩放级别。

这是谷歌地图的代码;

GoogleMap(
                      padding: EdgeInsets.only(bottom: _mapBottomPadding),
                      mapType: MapType.normal,
                      initialCameraPosition: _baseLocation,
                      myLocationButtonEnabled: true,
                      myLocationEnabled: true,
                      
                      zoomControlsEnabled: true,
                      zoomGesturesEnabled: true,
                      // minMaxZoomPreference: const MinMaxZoomPreference(12, 14),
                      polylines: _polylineSet,
                      markers: _markersSet,
                      onMapCreated: (GoogleMapController controller) async 
                        if (!_controller.isCompleted) 
                          //first calling is false
                          //call "completer()"
                          _controller.complete(controller);
                          // setState(() );
                         else 
                          //other calling, later is true,
                          //don't call again completer()
                        
                        // _controller.complete(controller);
                        _googleMapController = controller;

                        // Set Initial Camera Position
                        setCameraPosition(
                            position: locationData.getCurrentAddress.position
                                as Position);
                        setMapBounds();
                        setState(() );
                      ,
                    ),

之前设置相机位置时,缩放停留在最后一个缩放级别,我想在单击 myLocationButton 时将其休息。

setMapBounds();方法调用设置取决于地图边界的缩放并调用下面的代码,当我单击 myLocationButton 时,这可能会导致高缩放级别并且缩放级别在调用后仍然存在。

_googleMapController!
          .animateCamera(CameraUpdate.newLatLngBounds(latLngBounds, 70));

如何在为相机设置动画后重置缩放级别?

【问题讨论】:

【参考方案1】:

如果有帮助,你可以试试这个吗?尝试 setState zoomValue

double zoomValue=14.0;

         LatLng   mapCenter = new LatLng("your latitude", "your longitude");
    
    initialCameraPosition: CameraPosition(
                      target: mapCenter,
                      zoom: zoomValue,
                    ),

【讨论】:

【参考方案2】:

试试这个

GoogleMap(
  zoomGesturesEnabled: true,
  tiltGesturesEnabled: false,
  onCameraMove:(CameraPosition cameraPosition)
     print(cameraPosition.zoom);
  ,

【讨论】:

以上是关于如何为 google_maps_flutter 设置缩放级别的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何在 google_maps_flutter 中为标记图标设置动画?

如何为众筹门户设置贝宝

如何为所有 MUI 组件全局禁用 box-shadow?

Flutter/Dart 为 Google Maps Marker 添加自定义点击事件

从 google_maps_flutter 中删除多余的标记和圆圈

谷歌地图使用 google_maps_flutter 插件显示空白地图