2016-02-24 63 views
1

我在使用新的OpenLayers。我正在嘗試使用版本3.0和3.13進行一些練習。的OpenLayers 3.13:問題與bindTo通過連接兩個視圖

我必須連接兩個觀點:第二張地圖應對在第一張地圖的變化,但縮小了三次;當第一張地圖被平移或放大時,第二張地圖應居於同一位置,並保持縮小到三個級別。 我使用的是以下代碼,在3.0版本上運行良好,但在v3.13上不能運行:控制檯打印Uncaught TypeError: view2.bindTo is not a function

在另一個例子中,我對v3.13使用map2.bindTo('view', map);,沒有任何問題。有什麼不同?

編輯 我錯了,我得到了同樣的問題。 沒有bindTo了(詳情請參閱Jonatas Walker的評論)。

var layer = new ol.layer.Tile({ 
    source: new ol.source.OSM() 
}); 

var london = ol.proj.transform([-0.12755, 51.507222], 'EPSG:4326', 'EPSG:3857'); 

var view = new ol.View({ 
    center: london, 
    zoom: 6, 
}); 

var view2 = new ol.View({ 
    center: london, 
    zoom: 3, 
}); 

var map = new ol.Map({ 
    target: 'map1', 
    layers: [layer], 
    view: view, 
    //renderer: 'dom' 
}); 

var map2 = new ol.Map({ 
    target: 'map2', 
    layers: [layer], 
    controls: new ol.Collection(), 
    interactions: new ol.Collection(), 
    view: view2 
}); 

view2.bindTo('center', view); 

view.on('change:resolution', function(){ 
    var zoom = this.getZoom(); 
    if (zoom >= 3 && zoom <= 18) 
    view2.setZoom(this.getZoom()-3); 
    else view2.setZoom(this.getZoom()); 
}); 
+1

有沒有'bindTo'了,看到https://github.com/openlayers/ol3/拉/ 3472。 –

+0

@JonatasWalker:謝謝。如果您將此評論添加爲答案,我會接受它。 – Sefran2

回答

2

由於PR #3472沒有bindTo方法,你能達到這個中心,像結合:

view.on('change:center', function(evt){ 
    view2.setCenter(view.getCenter()); 
});