2015-10-14 61 views
0

我是新來打開第3層api的,我有一個查詢:我標記了一些位置和自定義信息窗口,打開這些標記點擊。請找小提琴here根據打開的圖層重新調整框的大小3地圖縮放

var map = new ol.Map({ 
target: 'map', 
view: new ol.View({ 
    center: ol.proj.fromLonLat([78, 21]), 
    zoom: 2 
}), 
layers: [ 
new ol.layer.Tile({ 
    source: new ol.source.MapQuest({ 
     layer: 'osm' 
    }) 
})] 

});

當使用鼠標滾輪進出地圖時,是否可以重新調整框的大小?我打算標記更多的城市,點擊每個標記時繪製框,默認情況下應打開這些框,以便覆蓋整個地圖。我可以根據縮放級別更改框的大小嗎? 還有哪個圖層設置爲沒有任何詳細信息的機場,道路等地圖。我希望地圖具有基本的極簡層次,只有國家邊界和城市名稱。

感謝

回答

0

你可以聽視圖change:resolution事件,使箱更大的使用縮放級別。這裏有一個例子:

var view = new ol.View({ 
    center: ol.proj.fromLonLat([78, 21]) 
}); 

var parentZoom = null; 

view.on('change:resolution', function() { 
    var zoom = view.getZoom(); 
    if (parentZoom !== null) { 
     $('#zoom').text([ 
      'Parent zoom:', 
      parentZoom, 
      ', Current zoom:', 
      zoom 
     ].join(' ')); 
    } 
    var width = 50 + (zoom * 10); 
    var height = 30 + (zoom * 10); 
    $('.mapDivs').width(width + 'px').height(height + 'px'); 
    parentZoom = zoom; 
}, this); 

view.setZoom(2); 

觀摩上的jsfiddle(你的例子與上面的代碼更新):http://jsfiddle.net/pe7hyr0x/15/

+0

感謝亞歷山大,您的答覆。如何識別放大/縮小事件,因爲我需要在縮小時縮小尺寸並在放大時增加。謝謝 – Bhupendra

+0

以上示例已經根據縮放級別設置了尺寸。我不明白你想要達到什麼目的,但如果上述方法對你沒有幫助,你可以保留對前一縮放級別的參考,並對每次分辨率更改進行比較。 –

+0

我更新了答案。 –

相關問題