Openlayers OL地图视图:未使用提供的边界……为什么?

Openlayers OL地图视图:未使用提供的边界……为什么?,openlayers,openlayers-5,Openlayers,Openlayers 5,当我为mapview提供leftbottom和righttop坐标时,这些坐标并没有被完全使用。由此产生的差异相当大。我错过了什么 Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191]; Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857')); var

当我为mapview提供leftbottom和righttop坐标时,这些坐标并没有被完全使用。由此产生的差异相当大。我错过了什么

Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191];
Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));


var map = new ol.Map({
    target: 'map',
    view: new ol.View({
        projection: "EPSG:3857"
        })
    });

map.getView().fit(Bounds,map.getSize());
mapview获得了新的(‘更大’)边界,但不是上面的边界。“新”边界为[-6.837646484374999,47.322226629045806,17.837646484375,56.46113401735425]

我怎样才能使地图与提供的地图保持一致

编辑:我已经根据迈克的评论调整了代码(thx!!)。
**实现我想要的最好的方法是什么。是否显示位于具有上述leftbottom和righttop(LON/LAT)坐标的边界框内的地图部分**

正在使用边界,但除非指定
constraintResolution:false
否则视图将捕捉到最接近的整数缩放级别。此代码演示如何通过允许分数缩放级别获得精确拟合。请注意,如果地图的宽度/高度比与范围不匹配,则会有一些额外的覆盖范围

Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191];
Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));

var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM()
        }),
        new ol.layer.Vector({
            source: new ol.source.Vector({
                features: [new ol.Feature(ol.geom.Polygon.fromExtent(Bounds))]
            })
        })
    ]
});
map.getView().fit(Bounds, {size: map.getSize(), constrainResolution: false});

由于OpenLayers 3范围用于约束视图的中心,因此它与OpenLayers 2中的边界不同。地图可平移的范围将是“范围”属性的宽度和高度的两倍,在低缩放级别时会更大。边界范围的正确语法是
Bounds=ol.extent.boundingExtent([-0.6688232421875,49.7832256651028],[11.6688232421875,54.35032343193191])或者您可以简单地使用
Bounds=[-0.6688232421875、49.7832256651028、11.6688232421875、54.35032343193191]
也应在声明映射后调用
.fit()
,它不返回值。