openlayers 有三种通过设置缩放级别来控制视图(view)的方法。
//第一种(直接设置固定zoom)
zoom:10
//第二种(设置zoom范围)
minZoom:10,
maxZoom:14,
//或者通过extent设置中心点范围
① 不需要转换坐标时
extent:[minx, miny, maxx, maxy]; 分别是[最小纬度,最小经度,最大纬度,最大经度]
② 需要转换坐标时
extent:transformExtent([102, 27, 105, 31],'EPSG:4326','EPSG:3857');
//第三种(自适应缩放级别)
利用view.fit()方法
map.getView().fit(transformExtent([104,30.6,104.12,30.74], 'EPSG:4326', 'EPSG:3857'),{nearest:true,constrainResolution: false,});//最接近范围
map.getView().fit(transformExtent([104,30.6,104.12,30.74], 'EPSG:4326', 'EPSG:3857'),map1.getSize());//地图大小
map.getView().fit(transformExtent([104,30.6,104.12,30.74], 'EPSG:4326', 'EPSG:3857'),{size:map1.getSize(),padding:[10,10,10,10]});//地图大小 但设置了padding 矩形变大,视野变宽
第一个参数是需要最佳显示的矩形框的范围,第二个参数是限制最佳状态。
一般情况下,第二个参数只需要传一个map.getSize() (地图大小)即可,如果需要传其他限制内容,第二个参数就传一个对象,里面添加各种参数。