OpenLayers分屏联动对比

news/2024/11/8 17:47:54/

温馨提示:本文所用OpenLayers版本为6.9.0

解决方案

一开始的想法是,一侧地图拖动时动态更新另一侧地图的Center,但是API没找见实时拖动的move事件,postrender事件可以实现但是影响效率,以下为实现方法,有兴趣的可以试试,但不建议使用。

function togetherMove() {allMaps[0].on("postrender", function (e) {var c0 = allMaps[0].getView().getCenter();var z0 = allMaps[0].getView().getZoom();if (allMaps[1]) {allMaps[1].getView().setCenter(c0, z0);allMaps[1].getView().setZoom(z0);}});if (allMaps[1])allMaps[1].on("postrender", function (e) {var c1 = allMaps[1].getView().getCenter();var z1 = allMaps[1].getView().getZoom();allMaps[0].getView().setCenter(c1, z1);allMaps[0].getView().setZoom(z1);});
}

后来发现,两个map共用一个view即可实现联动

全部代码

<template><div id="mapContainer"></div><div id="mapContainer2"></div>
</template><script>
import "ol/ol.css";
import { Map, View } from "ol";
import TileLayer from "ol/layer/Tile";
import OSM from "ol/source/OSM";
import { onMounted } from "@vue/runtime-core";
export default {setup() {let view = new View({projection: "EPSG:4326",center: [108.961029, 34.208386],zoom: 12,});onMounted(() => {let map = new Map({target: "mapContainer",layers: [new TileLayer({source: new OSM(),}),],view: view,});let map2 = new Map({target: "mapContainer2",layers: [new TileLayer({source: new OSM(),}),],view: view,});});},
};
</script>
<style>
#mapContainer {width: 50%;height: 100%;left: 0;bottom: 0;position: absolute;
}
#mapContainer2 {width: 50%;height: 100%;right: 0;bottom: 0;position: absolute;
}
</style>

http://www.ppmy.cn/news/356626.html

相关文章

Linux分屏工具

使用tmux分屏&#xff08;既可以左右分屏&#xff0c;也可以上下分屏&#xff09; &#xff08;1&#xff09;安装工具 在ubuntu系统中使用sudo apt-get install tmux安装tmux工具 &#xff08;2&#xff09;使用工具 1&#xff0c;输入命令tmux使用工具 2&#xff0c;上下…

win10分屏快捷键无法使用_win10分屏快捷键如何使用

win10系统相较于其他系统增加了很多功能&#xff0c;比如虚拟桌面&#xff0c;分屏功能&#xff0c;小娜功能等等。有些朋友就询问小编win10分屏的快捷键。我给大家整理了win10分屏快捷键的使用教程&#xff0c;赶紧来瞧瞧吧 win10分屏快捷键如何使用呢&#xff1f;现在办公我们…

安卓应用禁止分屏模式方法

原文链接&#xff1a;https://blog.csdn.net/xiangzaixiansheng/article/details/83007411 因为很多应用的自身问题&#xff0c;在分屏模式下会出现layout错乱的现象。所以有些应用是不支持分屏模式的。下面我们介绍三种禁止分屏模式的方法。由最简单实用&#xff0c;到稍微麻…

android分屏模式_Android分屏显示总结

1. 基础原理 1.1 ActivityRecord、TaskRecord、ActivityStack关系 一个ActivityRecord对应着一个Activity,而一个Activity可能对应着不同的ActivityRecord(因为Activity可能被实例化多次)。一系列的ActivityRecord存在于TaskRecord(一个Task就是用户体验上的一个“应用”,它将…

android 分屏模式适配,安卓适配分屏注意事项

分屏模式下可强制应用横屏,所以注意应用内强制竖屏的页面适配横屏显示 分屏模式下,获取应用所占用的宽高 getResources().getConfiguration().screenWidthDp getResources().getConfiguration().screenHeightDp 多窗口变更通知和查询 //Activity 提供以下方法来支持多窗口显示…

android强制分屏软件,第三方强制分屏app

第三方强制分屏是一款非常好用的手机分屏工具&#xff0c;它的功能非常强大&#xff0c;很轻松就可以分屏&#xff0c;操作简单&#xff0c;新用户也能很快上手&#xff0c;有非常贴心的新手教程&#xff0c;给用户提供了很多的便利&#xff0c;以后就可以一边看电视一边聊天啦…

linux终端下如何分屏,ubuntu terminal 终端分屏

http://blog.csdn.net/liuxiaoheng1992/article/details/54409711 1.sudo apt-get install terminator 2.这个终端程序可以分屏,常用操作快捷键如下: Ctrl+Shift+O Split terminals Horizontally.(上下开新窗口) Ctrl+Shift+E Split terminals Vertically.(垂直开新窗口) Ctr…

系统提示“d3dx9_43.dll丢失、找不到”原因与解决方案

相信很多朋友都有遇到过这种情况&#xff1a;在登陆游戏或打开某个软件时&#xff0c;系统会弹出一个窗口提示&#xff1a;“d3dx9_43.dll丢失” 或 ”d3dx9_43.dll找不到“&#xff0c;出现这种情况一般是系统的不完整性导致&#xff08;非正版系统比较容易出现此问题&#xf…