OpenLayers的API讲解(二)


ol.View

Introduction

ol.View 对象表示一个简单的地图2D视图。对改变地图的中心,分辨率和旋转起到作用。

The View States

ol.View是由三个状态决定的;分别为centerresolutionrotation。每一个state都有相应的gettersetter方法。例如,centergetCentersetCenter方法。
ol.view有一个projection。这个投影决定了中心坐标系统,并且它的单位决定了分辨率的单位(投影的单位是像素)。默认情况下,投影的单位是是Spherical Mercator (EPSG:3857)

The constraints

setCentersetResolutionsetRotation常用来改变视图的状态。任一值都可以传输给setter方法。并且通过传输给setter方法的值将会有效成为视图中设置的值,可以通过相应的getter方法返回其值。
但是ol.view对象也有分辨率,旋转和中心的约束条件。
综上所述,当setter方法用来为视图设置新的状态时,没有任何约束。通过明确的运用constrain*方法(constrainResolution,constrainRotation和constrainCenter)来使约束起作用。
约束的主要用户是Interactionscontrols。例如,在地图上双击可以改变视图到“另一个”分辨率。在捏缩放之后放开手指可以获取最近的分辨率(动画)。
分辨率约束可以获得特定的分辨率。通常由一下选项决定:resolutionsmaxResoutionmaxZoomzoomFactor。如果设置了resolutions,其他三个选项将会被忽略。
旋转约束获取特定的角度。通常由一下选项决定:enableRotationconstrainRotation。默认情况下,旋转在接近于地平线的时候,其值为0。
中心约束通常由extent选项决定。默认情况下,中心根本不受限制。

参数讲解

new ol.View

  • center
    视图初始化中心。中心坐标系统由projection指定。默认情况下,没有定义。如果没有设置,layer将会获取不到资源。
  • constarinRoration
    旋转约束。默认值为truefalse值表示没有约束,true值表示有约束。但snap非常接近于0。一个数字设置旋转的值就是这个数字。例如,4将旋转设置为0,90,180,270多个度数。
  • enableRotation
    启用旋转。默认为true。如果设置旋转约束为false,将会设置旋转的值为0。如果enableRotation设置为falseconstrainRotation选项没有任何作用。
  • 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 的限制。如果设置了maxResolutionminResolutionminZoommaxZoomzoomFactor 选项将会失效。
  • rotation
    视图初始化时定义旋转。默认值为0。
  • zoom
    只有当在resolution没有定义时才能有用。Zoom 级别用来计算视图的厨师分辨率的值。用ol.View#constrainResolution方法确定。
  • zoomFactor
    zoom factor用来确定分辨率限制值。默认值为2。

转载自:https://blog.csdn.net/u012832088/article/details/78700612

You may also like...