Flutter中如何获取Google Maps的设备支持缩放级别
在Flutter Google Maps中获取设备支持的最大缩放级别
你可以通过GoogleMapController提供的getMaxZoomLevel()异步方法,获取当前地图中心区域支持的最大缩放级别,以此避免设置的缩放值被自动钳位。
这个方法会返回当前位置对应的实际最大缩放值——不同区域的地图数据支持的缩放范围可能存在差异,比如城区和偏远地区的最大缩放级别就不一样。你可以基于这个值调整目标缩放:如果想要的18级在支持范围内就用18,否则就用当前支持的最大级别。
修改后的代码示例:
onMapCreated: (controller) async { mapController = controller; // 获取当前目标位置的最大缩放级别 double maxZoom = await mapController.getMaxZoomLevel(); // 确定最终要设置的缩放级别 double targetZoom = 18 <= maxZoom ? 18 : maxZoom; await mapController.moveCamera( CameraUpdate.newCameraPosition( CameraPosition( target: provider.currentPosition!, zoom: targetZoom, ), ), ); },
另外不需要额外的Future.delayed和setState,直接在onMapCreated回调里完成这些逻辑即可,因为此时地图控制器已经初始化完成。
内容的提问来源于stack exchange,提问作者mbakabilal
相关产品推荐
相关产品推荐

