You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter HERE SDK中添加Pan Gesture监听器控制导航相机跟踪模式

地图平移时关闭导航相机跟随的实现方案

步骤1:监听地图平移手势

根据你使用的地图SDK选择对应监听方式:

  • 主流地图SDK(高德、百度、Google Map、Mapbox等)均自带相机移动回调,直接监听onCameraMoveStarted类的事件,事件触发原因判断为用户手势拖动时执行后续逻辑即可
  • 若所用地图未提供自带回调,给地图组件手动添加平移手势识别器即可,注意配置手势竞争规则,避免和地图原生触摸事件冲突,示例如下(以Flutter为例):
GestureDetector(
  // 配置命中测试规则,确保能获取到触摸事件
  behavior: HitTestBehavior.opaque,
  onPanStart: (_) {
    // 监听到用户开始平移地图时触发逻辑
    setTracking(false);
  },
  child: 你的地图Widget,
)

步骤2:执行关闭追踪逻辑

监听到平移事件后直接调用setTracking(false),即可进入你提供的代码的else分支,将相机追踪模式设为CameraTrackingMode.disabled,此时地图不会再自动跟随用户位置刷新视角,用户可以自由拖动查看其他区域。

可选优化项

  • 新增“回到当前位置”悬浮按钮,用户点击后调用setTracking(true)即可重新开启相机追踪,恢复正常导航视角
  • 若产品需要,可在导航偏航重算、到达途经点等场景自动恢复相机追踪,不需要的话保持手动触发即可

内容的提问来源于stack exchange,提问作者Muhammed Emin Aydın

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:45:03