openlayers多地图同步,分屏对比

/**
 * 多地图同步,依次传入的多个地图都会同步
 * @param {Map} 地图对象
 * @returns {Function} 取消同步的方法
 */
export function syncMultiMap(...args) {
  let syncMaps = Array.from(args);

  let activeMap = syncMaps.shift();
  for (let map of syncMaps) {
    // 存储自身视图对象
    map._selfView = map.getView();
    // 存储同步参照物
    map._activeMap = activeMap;
    // 绑定目标视图对象
    map.setView(activeMap.getView());
  }
  return function () {
    for (let map of syncMaps) {
      map.setView(map._selfView);
      map._activeMap = null;
    }
  }
}

 

 
posted @ 2022-06-06 23:20  沃斯zui邦德  阅读(599)  评论(0)    收藏  举报