Openlayers 将视图与偏移同步

Openlayers 将视图与偏移同步,openlayers,openlayers-3,Openlayers,Openlayers 3,将同一视图指定给多个OpenLayers地图会导致同步视图,这些视图会在地图之间更新(例如,当用户平移或缩放时)。 我想同步地图视图,但要有偏移量。通过在地图上重新使用视图,这仍然可行吗?还是我必须自己处理这些事件 使用相同的视图与使用OpenLayers文档()中描述的bindTo方法有什么区别?bindTo已在3.5.0版中删除(当前版本为4.6.4)。因此,使用它将迫使您使用2年以上的OpenLayers版本 另一方面,通过事件侦听器可以轻松实现单向绑定 双向绑定很难实现,因为必须确保不创

将同一视图指定给多个OpenLayers地图会导致同步视图,这些视图会在地图之间更新(例如,当用户平移或缩放时)。 我想同步地图视图,但要有偏移量。通过在地图上重新使用视图,这仍然可行吗?还是我必须自己处理这些事件


使用相同的视图与使用OpenLayers文档()中描述的
bindTo
方法有什么区别?

bindTo
已在3.5.0版中删除(当前版本为4.6.4)。因此,使用它将迫使您使用2年以上的OpenLayers版本

另一方面,通过事件侦听器可以轻松实现单向绑定

双向绑定很难实现,因为必须确保不创建更新循环。如果在两个映射上都放置更改侦听器,则它们会重复调用对方

通过摆弄事件值,可以轻松偏移第二个贴图的中心位置

var视图=新建ol.view({
中心:[0,0],缩放:2
});
var view2=新ol.View({
中心:[0,0],缩放:2
});
var source=new ol.source.OSM();
var map=新ol.map({
图层:[
新ol.layer.Tile({
资料来源:资料来源
})
],
目标:“地图”,
视图:视图
});
var map2=新ol.Map({
图层:[
新ol.layer.Tile({
来源:new ol.source.OSM()
})
],
目标:“map2”,
视图:视图2
});
函数updateView(事件,viewRef){
让newValue=event.target.get(event.key);
如果(event.key==='center'){
//我们需要转换值,它来自错误的投影
newValue=ol.proj.transform(newValue,source.getProjection(),'EPSG:3857');
//在这里以某种方式抵消该值
}
viewRef.set(event.key,newValue);
}
查看('change:resolution',函数(事件){
更新视图(事件,视图2);
});
查看('change:center',函数(事件){
更新视图(事件,视图2);
});
.map{
最大高度:100px;
}