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

时间:2018-06-26 13:21:39

标签: javascript openlayers viewport

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

如果包含地图的<div>的大小大约为1000 px x 750 px,则此方法很好:

enter image description here

现在,我们的容器尺寸变化很大。因此,我们有了一个容器div,仅说700px x 300px,结果为:

enter image description here

现在,我希望在地图中具有与第一张图片相同的视图,在第二个较小的容器尺寸/视口中也是如此。

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

我希望缩放级别与容器大小无关,但并非如此,因此我需要找到一种方法来根据maxResolution限制显示的数据,并相应地限制平移。

现在我找不到合适的方法来做到这一点。有人可以为我提供函数或公式来计算openlayers map(view)的maxResolution属性,因此无论容器/ target(div)的大小如何,显示的地图范围始终是相同的?

1 个答案:

答案 0 :(得分:2)

您不是在寻找设置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() });

如果您需要一个例子或者只是简单地问一下,这是一种方法