如何为 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 中为标记图标设置动画?
Flutter/Dart 为 Google Maps Marker 添加自定义点击事件