# all files / ol/source/ xyzsource.js

100% Statements 7/7
83.33% Branches 5/6
100% Functions 1/1
100% Lines 7/7

    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
    581×

    1×

    1×
    12×

    12×

    12×

    1×
     goog.provide('ol.source.XYZ');

    goog.require('ol.source.TileImage');

    /**
     * @classdesc
     * Layer source for tile data with URLs in a set XYZ format that are
     * defined in a URL template. By default, this follows the widely-used
     * Google grid where `x` 0 and `y` 0 are in the top left. Grids like
     * TMS where `x` 0 and `y` 0 are in the bottom left can be used by
     * using the `{-y}` placeholder in the URL template, so long as the
     * source does not have a custom tile grid. In this case,
     * {@link ol.source.TileImage} can be used with a `tileUrlFunction`
     * such as:
     *
     *  tileUrlFunction: function(coordinate) {
     *    return 'http://mapserver.com/' + coordinate[0] + '/' +
     *        coordinate[1] + '/' + coordinate[2] + '.png';
     *    }
     *
     *
     * @constructor
     * @extends {ol.source.TileImage}
     * @param {olx.source.XYZOptions} options XYZ options.
     * @api stable
     */
    ol.source.XYZ = function(options) {
      var projection = options.projection !== undefined ?
          options.projection : 'EPSG:3857';

      var tileGrid = options.tileGrid !== undefined ? options.tileGrid :
          ol.tilegrid.createXYZ({
            extent: ol.tilegrid.extentFromProjection(projection),
            maxZoom: options.maxZoom,
            tileSize: options.tileSize
          });

      goog.base(this, {
        attributions: options.attributions,
        crossOrigin: options.crossOrigin,
        logo: options.logo,
        opaque: options.opaque,
        projection: projection,
        reprojectionErrorThreshold: options.reprojectionErrorThreshold,
        tileGrid: tileGrid,
        tileLoadFunction: options.tileLoadFunction,
        tilePixelRatio: options.tilePixelRatio,
        tileUrlFunction: options.tileUrlFunction,
        url: options.url,
        urls: options.urls,
        wrapX: options.wrapX !== undefined ? options.wrapX : true
      });

    };
    goog.inherits(ol.source.XYZ, ol.source.TileImage);