OpenLayers的API讲解(二)
目录
ol.View
Introduction
ol.View 对象表示一个简单的地图2D视图。对改变地图的中心,分辨率和旋转起到作用。
The View States
ol.View是由三个状态决定的;分别为center,resolution,rotation。每一个state都有相应的getter和setter方法。例如,center的getCenter和setCenter方法。
ol.view有一个projection。这个投影决定了中心坐标系统,并且它的单位决定了分辨率的单位(投影的单位是像素)。默认情况下,投影的单位是是Spherical Mercator (EPSG:3857)。
The constraints
setCenter,setResolution和setRotation常用来改变视图的状态。任一值都可以传输给setter方法。并且通过传输给setter方法的值将会有效成为视图中设置的值,可以通过相应的getter方法返回其值。
但是ol.view对象也有分辨率,旋转和中心的约束条件。
综上所述,当setter方法用来为视图设置新的状态时,没有任何约束。通过明确的运用constrain*方法(constrainResolution,constrainRotation和constrainCenter)来使约束起作用。
约束的主要用户是Interactions和controls。例如,在地图上双击可以改变视图到“另一个”分辨率。在捏缩放之后放开手指可以获取最近的分辨率(动画)。
分辨率约束可以获得特定的分辨率。通常由一下选项决定:resolutions,maxResoution,maxZoom和zoomFactor。如果设置了resolutions,其他三个选项将会被忽略。
旋转约束获取特定的角度。通常由一下选项决定:enableRotation,constrainRotation。默认情况下,旋转在接近于地平线的时候,其值为0。
中心约束通常由extent选项决定。默认情况下,中心根本不受限制。
参数讲解
new ol.View
- center
视图初始化中心。中心坐标系统由projection指定。默认情况下,没有定义。如果没有设置,layer将会获取不到资源。 - constarinRoration
旋转约束。默认值为true。false值表示没有约束,true值表示有约束。但snap非常接近于0。一个数字设置旋转的值就是这个数字。例如,4将旋转设置为0,90,180,270多个度数。 - enableRotation
启用旋转。默认为true。如果设置旋转约束为false,将会设置旋转的值为0。如果enableRotation设置为false,constrainRotation选项没有任何作用。 - extent
限制中心的程度。换句话说,中心不能超过限制值。默认为undefined。 - maxResolution
分辨率最大值用来确定分辨率的最大约束。通常由minResolution(或者maxZoom)和zoomFactor一起使用。如果没有指定,则以投影的有效范围适合256*256图块中来计算。如果投影是Spherical Mercator (默认情况下),那么maxResolution默认为40075016.68557849 / 256 = 156543.03392804097 - minResolution
用来确定分辨率限制的最小分辨率值。通常由minResolution(或者maxZoom)和zoomFactor一起使用。如果没有指定,假定为29缩放级别来计算。如果投影是Spherical Mercator (默认情况下),那么minResolution默认为40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253。 - maxZoom
用来决定分辨率限制的最大缩放级别。通常由minZoom(或者maxResolution)和zoomFactor一起使用。默认值为28。注意,如果minResolution也提供了,则优先maxZoom。 - minZoom
用来决定分辨率限制的最小缩放级别。通常由maxZoom(或者minResolution)和zoomFactor一起使用。默认值为0。注意,如果maxResolution也提供了,则优先minZoom。 - projection
投影。默认值为EPSG:3857 (Spherical Mercator) - resolution
视图初始化时的分辨率。其单位是projection的单位像素。另一种可供选择的设置其值得方法是设置zoom。默认是没有定义的。如果zoom的值没有定义,layer获取不到资源。 - resolutions
resolutions决定resolution的限制。如果设置了maxResolution。minResolution,minZoom,maxZoom和zoomFactor选项将会失效。 - rotation
视图初始化时定义旋转。默认值为0。 - zoom
只有当在resolution没有定义时才能有用。Zoom级别用来计算视图的厨师分辨率的值。用ol.View#constrainResolution方法确定。 - zoomFactor
zoom factor用来确定分辨率限制值。默认值为2。
转载自:https://blog.csdn.net/u012832088/article/details/78700612


