openlayers - 在 openlayers 的共享视图中使用同一层
问题描述
我想在两个视图中渲染同一层,但遇到了问题。该图层一次显示在一张地图上。如果放大或缩小,它有时会反映在视图 1 上,有时会反映在视图 2 上。
var roadLayer = new TileLayer({
source: new OSM(),
});
var view = new View({
center: [-6655.5402445057125, 6709968.258934638],
zoom: 13,
});
var map1 = new Map({
target: 'roadMap',
layers: [roadLayer],
view: view,
});
var map2 = new Map({
target: 'aerialMap',
layers: [roadLayer],
view: view,
});
解决方案
但是,您可以在两层中使用相同的源:
var source = new OSM();
var view = new View({
center: [-6655.5402445057125, 6709968.258934638],
zoom: 13,
});
var map1 = new Map({
target: 'roadMap',
layers: [
new TileLayer({
source: source,
})
],
view: view,
});
var map2 = new Map({
target: 'aerialMap',
layers: [
new TileLayer({
source: source,
})
],
view: view,
});
推荐阅读
- r - 从 R 中的数据框中提取状态级别百分比 - 更好的解决方案?
- amazon-web-services - Terraform - 动态变量参数
- javascript - 如何在 JS 中创建数组的排列但具有给定数量的字符
- excel - 如何卸载javascript excel自定义函数
- c# - 如何通过 Automapper 10+ 将两个不同的对象与嵌套集合合并?
- vue.js - 迭代中的错误元素期望有 'v-bind:key' 指令 vue/require-v-for-key
- javascript - 如何单击 div 中的元素并获取该元素的文本内容,该元素源自循环到 DOM 的数组中的对象
- swift - 当我尝试设置过滤器时,表格视图单元格不出现
- javascript - Passport.js 本地策略返回错误“缺少凭据”
- mysql - MySQL 最佳方法