Как установить уровень масштабирования для google_maps_flutter

#flutter #google-maps-flutter

Вопрос:

Я использую пакет google_maps_flutter, и уровень масштабирования кнопки myLocation при нажатии устанавливается на мой последний уровень масштабирования. Я хотел бы сбросить уровень масштабирования при нажатии кнопки myLocation.

Это код для карт Google;

 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(() {});
                      },
                    ),
 

Масштабирование застряло на последнем уровне масштабирования при предыдущей настройке положения камеры, и я хотел бы сохранить его, когда нажму кнопку myLocation.

Вызов метода setMapBounds(); устанавливает масштабирование, которое зависит от границ карты, и вызывает код ниже, который может привести к высокому уровню масштабирования, а уровень масштабирования сохраняется после вызова, когда я нажимаю кнопку myLocation.

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

Как я могу сбросить уровень масштабирования после анимации камеры?

Ответ №1:

Не могли бы вы, пожалуйста, попробовать это, если это поможет.попробуйте установить значение масштабирования

 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);
  },