根据打开的图层3地图缩放重新调整框的大小

时间:2015-10-14 12:12:23

标签: openlayers-3

我是新手打开第3层api,我有一个查询:我已经标记了一些位置和自定义信息窗口,点击这些标记即可打开。请找小提琴here

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'
    })
})]

});

当地图使用鼠标滚轮进出时,是否可以重新调整框的大小。我计划标记更多的城市,并在点击每个标记时绘制框,默认情况下应打开这些框,因此它将覆盖整个地图。我可以根据缩放级别更改框大小。 还有哪一层设置为没有任何详细信息的地图,如机场,道路等。我希望地图有基本的极简主义层,只有国家边界和城市名称。

谢谢

1 个答案:

答案 0 :(得分: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/