首页 / MapLibre / 使用示例
多地图联动
左右两幅地图同源,左侧可操作,右侧自动跟随。 四组视角参数逐帧同步,缩放差始终显示为 0.00。
源码与运行效果
说明
同步用的是 jumpTo 而不是 easeTo:前者立即改视角,
与源地图的每一帧对齐;后者会再启动一段动画,两幅地图始终差半个节拍。
B 地图以 interactive: false 创建,鼠标操作只作用于 A。
否则用户拖 B 时两边互相覆盖,画面会抖动。
| 要点 | 做法 | 原因 |
|---|---|---|
| 同步字段 | center、zoom、bearing、pitch | 少一项就会出现角度或尺度不一致 |
| 防回环 | syncing 标志位 | jumpTo 会再触发 move |
| 事件选择 | move 而非 moveend | 拖动过程中保持同步 |
| 交互隔离 | interactive: false | 只保留一侧可操作 |
两幅地图各自维护一份渲染资源,显存占用翻倍。 需要对比多期影像时,两幅图足够;三幅以上更推荐叠加图层并调透明度。
在 move 里做 DOM 更新会随每一帧触发。示例只在
moveend 时刷新数字,避免拖动时反复写文本。