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