如何根据容器大小设置 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() });
如果您需要示例或不懂就问,这是一种方法
我创建了一个 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() });
如果您需要示例或不懂就问,这是一种方法