直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>地图分屏联动</title>
<!-- <link rel="stylesheet" href="../lib/leaflet/leaflet.css" />
<script src="../lib/leaflet/leaflet.js"></script> -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css"
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
crossorigin=""></script>
<style>
body,
html {
height: 100%;
}
#div1 {
width: 100%;
height: 50%;
float: right;
border-bottom: 2px solid #00FFFF;
}
#div2 {
float: left;
width: 100%;
height: 50%;
}
</style>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
<script>
var map1 = L.map("div1").setView([38, 114], 12);
var map2 = L.map('div2').setView([38, 114], 12);
var layer1 = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
var layer2 = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
layer1.addTo(map1);
layer2.addTo(map2);
var maps = [map1, map2];
// 监听事件触发后依次为地图对象设置视图,将触发事件的地图视图给到其他地图对象
function mapLink(e) {
var _this = this; // this指向触发事件的地图对象
maps.map(function (t) {
t.setView(_this.getCenter(), _this.getZoom())
})
}
// 地图对象绑定缩放、平移监听事件
maps.map(function (t) {
t.on({ drag: mapLink, zoom: mapLink })
})
</script>
</body>
</html>