# all files / ol/source/ imagestaticsource.js

96.3% Statements 26/27
60% Branches 6/10
100% Functions 2/2
96.3% Lines 26/27

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    741×

    1×
    1×
    1×
    1×
    1×
    1×
    1×

    1×

    4×

    4×

    4×
    4×
    1×
    1×
    1×
    1×

    4×

    4×

    4×

    4×

    4×

    1×

    1×

    1×
    1×

     goog.provide('ol.source.ImageStatic');

    goog.require('goog.events');
    goog.require('goog.events.EventType');
    goog.require('ol.Image');
    goog.require('ol.ImageLoadFunctionType');
    goog.require('ol.extent');
    goog.require('ol.proj');
    goog.require('ol.source.Image');

    /**
     * @classdesc
     * A layer source for displaying a single, static image.
     *
     * @constructor
     * @extends {ol.source.Image}
     * @param {olx.source.ImageStaticOptions} options Options.
     * @api stable
     */
    ol.source.ImageStatic = function(options) {

      var attributions = options.attributions !== undefined ?
          options.attributions : null;

      var imageExtent = options.imageExtent;

      var xResolution, yResolution, resolutions, imgResolution;
      if (options.imageSize !== undefined) {
        xResolution = ol.extent.getWidth(imageExtent) / options.imageSize[0];
        yResolution = ol.extent.getHeight(imageExtent) / options.imageSize[1];
        imgResolution = [xResolution, yResolution];
        resolutions = [yResolution];
      }

      var crossOrigin = options.crossOrigin !== undefined ?
          options.crossOrigin : null;

      var /** @type {ol.ImageLoadFunctionType} */ imageLoadFunction =
          options.imageLoadFunction !== undefined ?
          options.imageLoadFunction : ol.source.Image.defaultImageLoadFunction;

      goog.base(this, {
        attributions: attributions,
        logo: options.logo,
        projection: ol.proj.get(options.projection),
        resolutions: resolutions
      });

      /**
       * @private
       * @type {ol.Image}
       */
      this.image_ = new ol.Image(imageExtent, imgResolution, 1,
          attributions, options.url, crossOrigin, imageLoadFunction);
      goog.events.listen(this.image_, goog.events.EventType.CHANGE,
          this.handleImageChange, false, this);

    };
    goog.inherits(ol.source.ImageStatic, ol.source.Image);

    /**
     * @inheritDoc
     */
    ol.source.ImageStatic.prototype.getImageInternal =
        function(extent, resolution, pixelRatio, projection) {
      Eif (ol.extent.intersects(extent, this.image_.getExtent())) {
        return this.image_;
      }
      return null;
    };