如何根据容器大小设置 maxResolution?

How to set the maxResolution depending on the container size?

我创建了一个 openlayers 地图,其最小缩放级别应固定为 2

如果包含地图的 <div> 的大小约为 1000 px x 750 px:

现在我们的容器尺寸变化非常大。所以我们有一个容器 div,也就是说,可以说 700px x 300px,结果是:

现在我想在第二个更小的容器中获得与第一张图片相同的地图视图 size/viewport。

通常我会调整缩放级别,但如果设置了最小缩放,我必须禁用地图的平移。

我希望缩放级别独立于容器大小,但事实并非如此,所以我需要找到一种方法来根据最大分辨率限制显示的数据,并相应地限制平移。

现在我找不到合适的方法来做到这一点。谁能给我一个函数或公式,告诉我如何计算 openlayers 地图(视图)的 maxResolution 属性,因此显示的地图范围始终相同,无论 container/target(div) 大小?

您不是在寻找设置 maxResolution 或 minResolution 的方法

这就是你需要的http://openlayers.org/en/latest/apidoc/ol.View.html#fit

使您的地图适合

minLongitude: -80
maxLongitude: 80
minLatitude: -180
maxLatitude: 180

示例: 将第一个数组调整为您想要的视图 => [minx, miny, maxx, maxy]。 我的坐标在 EPSG:4326!

map.getView().fit([-80, -180, 80, 180], { padding: [0, 0, 0, 0], size: map.getSize() });

如果您需要示例或不懂就问,这是一种方法