flutter - Google map 抖动放大/缩小

标签 flutter

我正在尝试使用google_maps_flutter创建一个示例应用程序,例如Uber:^ 0.5.10 ..在Uber应用程序中,选择拾取/放置位置,然后双击(放大)或放大/缩小以缩放屏幕它总是发生在屏幕中央。而当我在抖动中添加Google map 时,如果我双击双击,在屏幕右下角说,Google map 会缩放并将 View 带到被点击的区域。同样,缩放(收缩屏幕)也会发生这种情况。我缩放相机 View 的区域将转到该特定位置。但我想双击或缩放以保持居中于所选位置(例如在Uber中)。

我确实使用cameraMove和cameraStop回调实现了它。在此过程中,我确定摄像头是否由于变焦而移动,我得到了最后一个变焦因子,并使用新的变焦因子将摄像头移回到我选择的位置。如果我双击左上角的相机,它会恢复到原始位置,但效果不错。同样,我也进行了缩放缩放,以放大/缩小相机移动回到我选择的原始位置。

然后,我在GoogleMaps上尝试了GestureDetector。在里面,我处理了onDoubleTap。看起来很整洁,因为我只需双击双击即可更改缩放比例,并保持位置不变。但是我无法使用GestureDetector上的onScaleUpdate(etc)函数来实现缩放放大/缩小。

Google Maps Flutter插件中有没有更好的方法来完成所有这些工作?

最佳答案

使用onCameraMove,这将监听cameraPosition的更改。
例如,如果您使用双击放大或使用手势放大/缩小,

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

onCameraMove采用void函数并将其传递给CameraPosition参数,因此您可以使用
“cameraPosition.zoom”返回当前的缩放级别; “cameraPosition.tilt”返回当前倾斜角度...

关于flutter - Google map 抖动放大/缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55968628/

相关文章:

flutter - 为什么迁移到 flutter 3.3.0 后 Build 失败?

flutter - 如何使用 just_audio 合并两个音频文件以同时播放?

Flutter MediaQuery.of(context).size.width 值与实际屏幕分辨率不同

flutter - 如何用flutter实现拖拽

flutter - LayoutBuilder : constrains. maxHeight 返回无穷大

flutter - 尝试在dart(解析服务器SDK)中使用此包(flutter/dart)

flutter - 有没有办法有条件地重建小部件

json - 在flutter中解析json时如何修复类型错误?

flutter - Flutter:将“切换按钮”选择保存在“共享”首选项中

image - Flutter/Dart 有没有办法显示图像的一部分