码迷,mamicode.com
首页 > 其他好文 > 详细

OpenLayers中地图缩放级别的设置方法

时间:2019-06-17 10:33:36      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:直接   最小   pen   das   指定   必须   extent   屏幕   openlayer   

一、概述

在OpenLayers中,地图必须具有一个缩放级别的范围,缩放级别可以用比例尺(scale)或者分辨率(resolution)表示。

比例尺——屏幕上1米代表多少地图坐标单位;分辨率——屏幕上一个像素代表多少地图坐标单位。
两者的转换关系是:scale = resolution * 72 * 39.3701(1米=39.3701英寸,1英寸=72像素)

地图具有一个总的缩放级别,每个图层可以有各自的缩放级别,这样可以控制图层只在合适的级别上显示。

二、缩放级别范围的确定方法

1、比例尺数组或者分辨率数组来确定(相邻两级之间不一定是2倍的关系,可以是任意值)。示例:

resolutions: [1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125]
scales: [50000000, 30000000, 10000000, 5000000]

 

2、用最大分辨率(maxResolution)和缩放级别总数(numZoomLevels)确定,相邻两级是2倍关系

2.1最大分辨率的确定方法:

a. 直接指定maxResolution,例如:

maxResolution: 0.17578125

b. 直接指定minScale,例如:

minScale: 50000000

c. 由maxExtent确定(maxResolution需设置为‘auto’),例如:

maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
maxResolution: "auto"

2.2 缩放级别总数的确定方法:

a.  直接指定numZoomLevels,例如:numZoomLevels: 5
b.  由最大分辨率和最小分辨率的比值确定,最小分辨率同2.1有三种方法可以确定:

    b.1 直接指定minResolution
    b.2 直接指定maxScale
    b.3 由minExtent确定(minResolution需设置为‘auto’)

 

如果指定的参数过多,导致缩放级别范围不一致时,上述方法顺序决定了OpenLayers确定缩放级别范围的优先级。

OpenLayers中地图缩放级别的设置方法

标签:直接   最小   pen   das   指定   必须   extent   屏幕   openlayer   

原文地址:https://www.cnblogs.com/Jeely/p/11038272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!