/**
 * 多地图同步,依次传入的多个地图都会同步
 * @param {Array} 需要同步的地图
 * @param {Object} options 地图同步配置参数
 * @returns {Function} 取消同步的方法
 */
export function syncMultiMap(syncMaps, options) {
  let activeMap = syncMaps.shift();
  for (let map of syncMaps) {
    // 存储自身视图对象
    map._selfView = map.getView();
    // 存储同步参照物
    map._activeMap = activeMap;
    // 绑定目标视图对象
    map.setView(map.getView());
  }
  return function () {
    for (let map of syncMaps) {
      map.setView(map._selfView);
      map._activeMap = null;
    }
  }
}

Level7
87 声望0 粉丝