经纬志
首页 / MapLibre / 使用示例

多地图联动

左右两幅地图同源,左侧可操作,右侧自动跟随。 四组视角参数逐帧同步,缩放差始终显示为 0.00。

MapLibre GL JS 4.x · 更新 2026-10-28
源码与运行效果
运行效果

说明

同步用的是 jumpTo 而不是 easeTo:前者立即改视角, 与源地图的每一帧对齐;后者会再启动一段动画,两幅地图始终差半个节拍。

B 地图以 interactive: false 创建,鼠标操作只作用于 A。 否则用户拖 B 时两边互相覆盖,画面会抖动。

要点做法原因
同步字段center、zoom、bearing、pitch少一项就会出现角度或尺度不一致
防回环syncing 标志位jumpTo 会再触发 move
事件选择move 而非 moveend拖动过程中保持同步
交互隔离interactive: false只保留一侧可操作

两幅地图各自维护一份渲染资源,显存占用翻倍。 需要对比多期影像时,两幅图足够;三幅以上更推荐叠加图层并调透明度。

在 move 里做 DOM 更新会随每一帧触发。示例只在 moveend 时刷新数字,避免拖动时反复写文本。