Layer

Расширяет ILayer, IPositioningContext.

Тайловый слой. Позволяет отображать на карте подложку, состоящую из тайлов.

Конструктор | Поля | События | Методы

Конструктор

Параметры:

Параметр Значение по умолчанию Описание
tileUrlTemplate *

Тип: String|Function

Строковый шаблон URL тайла, либо функция, которая генерирует URL тайла. Для строкового шаблона поддерживается подстановка:

  • %c - заменяется на x=номер[0]&y=номер[1]&z=уровень масштабирования;
  • %x - заменяется на номер[0]
  • %y - заменяется на номер[1]
  • %z - заменяется на уровень масштабирования
  • %l - заменяется на lang=язык;
  • %d или %d|n - заменяется на число от 1 до n, в зависимости от номера тайла. n - количество доменов. Используется для распределения нагрузки между несколькими доменами. В качестве n нужно указывать степени двойки (2, 4, 16 и т.д.). Если шаблон имеет вид %d, то n=4.

Функция-шаблон получает на вход три параметра:

  • tileNumber - массив из двух чисел, номера тайла по x и y;
  • tileZoom - уровень масштабирования;
  • Возвращает строку-URL.
options

Тип: Object

Опции.

options.brightness 0.5

Тип: Number

Яркость слоя. Задается числом от 0 до 1. 0 соответствует черному цвету, 1 - белому.

options.notFoundTile null

Тип: String|null

Опция, указывающая по какому url нужно загрузить картинку, если картинка для тайла не загрузилась. Если значение null, то будет показан стандартный тайл с текстовым сообщением. Для прозрачных тайлов опция notFoundTile не применяется, и вместо незагруженных тайлов ничего показываться не будет.

options.pane 'layers'

Тип: IPane

Родительский контейнер слоёв.

options.projection

Тип: Object

Проекция слоя.

options.tileSize [256, 256]

Тип: Number[]

Размер тайлов слоя.

options.tileTransparent false

Тип: Boolean

Флаг, показывающий, являются ли тайлы слоя прозрачными.

options.zIndex constants.zIndex.layer

Тип: Number

Z-index слоя в контейнере слоёв.

* Обязательный параметр/опция.

Пример:

// Добавим на карту слой OSM
map.layers.add(new ymaps.Layer(
'http://tile.openstreetmap.org/%z/%x/%y.png', {
    projection: ymaps.projection.sphericalMercator
}));
map.copyrights.add('© OpenStreetMap contributors, CC-BY-SA');

Поля

Имя Тип Описание
events IEventManager

Менеджер событий.

Унаследовано от IEventEmitter.

options IOptionManager

Менеджер опций.

Унаследовано от ICustomizable.

События

Имя Описание
brightnesschange

Событие изменения яркости слоя.

Унаследовано от ILayer.

copyrightschange

Событие изменения доступной информации об авторских правах.

Унаследовано от ILayer.

mapchange
Сменилась карта. Поля данных:
  • oldMap - старая карта;
  • newMap - новая карта.

Унаследовано от IChildOnMap.

optionschange

Изменение в опциях объекта.

Унаследовано от ICustomizable.

parentchange

Сменился родительский объект.

Поля данных:

  • oldParent - старый родитель;
  • newParent - новый родитель.

Унаследовано от IChild.

zoomrangechange

Событие изменения доступной информации о диапазоне уровней масштабирования.

Унаследовано от ILayer.

Методы

Имя Возвращает Описание
clientPixelsToNumber(clientPixelPoint, tileZoom)

Number[]

Returns номер тайла, в который попадает указанная точка при заданном уровне масштаба тайлов.

fromClientPixels(clientPixelPoint)

Number[]

Преобразует клиентские пиксельные координаты в глобальные.

Унаследован от IPositioningContext.

getBrightness()

Number

Необязательный метод. Возвращает яркость слоя. В зависимости от суммарной яркости слоев, добавленных на карту, выбирается цвет логотипа и копирайтов на карте.

Унаследован от ILayer.

getCopyrights(coords, zoom)

util.Promise

Необязательный метод. Запрашивает информацию об авторских правах в указанной точке с указанным коэффициентом масштабирования. Возвращает объект-promise, который будет подтверждён и передаст в качестве результата массив строк или DOM-элементов с информацией об авторских правах.

Унаследован от ILayer.

getPane()

IPane

Возвращает контейнер, в котором находится слой.

getParent()

IParentOnMap

Returns ссылку на родительский объект.

Унаследован от IChildOnMap.

getTileSize(zoom)

Number[]

Возвращает размеры тайлов в зависимости от масштаба.

getTileUrl(tileNumber, tileZoom)

String|null

Returns URL тайла по его номеру и уровню масштабирования или null если для запрашиваемого участка нет данных.

getTileUrlTemplate()

String|Function

Returns строковый шаблон URL тайла или функцию, которая его генерирует.

getZoom()

Number

Returns текущий уровень масштабирования, в котором работает контекст позиционирования.

Унаследован от IPositioningContext.

getZoomRange(point)

util.Promise

Необязательный метод. Определяет доступный в указанной точке диапазон уровней масштабирования. Если данные есть, то возвращенный объект-promise будет подтвержден и передаст в качестве результата массив из двух чисел - минимальный и максимальный доступный в точке уровень масштабирования. Если данных нет, то promise отклоняется с указанием ошибки.

Унаследован от ILayer.

numberToClientBounds(tileNumber, tileZoom)

Number[][]

Преобразует номер и уровень масштаба тайла в занимаемую тайлом область в клиентских координатах родительского контейнера.

restrict(number, tileZoom)

Integer[]|null

Накладывает ограничения на зону видимости тайлов (в том числе зацикленность карты по осям x, y).

setParent(parent)

IChildOnMap

Устанавливает родительский объект.

Унаследован от IChildOnMap.

setTileUrlTemplate(tileUrlTemplate)
toClientPixels(globalPixelPoint)

Number[]

Преобразует глобальные пиксельные координаты в клиентские.

Унаследован от IPositioningContext.

update()

Удаляет старые тайлы и запрашивает новые.

Описание методов

clientPixelsToNumber

{Number[]} clientPixelsToNumber(clientPixelPoint, tileZoom)

Returns номер тайла, в который попадает указанная точка при заданном уровне масштаба тайлов.

Параметры:

Параметр Значение по умолчанию Описание
clientPixelPoint *

Тип: Number

Точка в клиентских пиксельных координатах.

tileZoom *

Тип: Number

Уровень масштаба тайла.

* Обязательный параметр/опция.

getPane

{IPane} getPane()

Возвращает контейнер, в котором находится слой.

Returns контейнер.

getTileSize

{Number[]} getTileSize(zoom)

Возвращает размеры тайлов в зависимости от масштаба.

Returns размеры тайла по горизонтали и вертикали для указанного коэффициента масштабирования.

Параметры:

Параметр Значение по умолчанию Описание
zoom *

Тип: Number

Значение коэффициента мастабирования.

* Обязательный параметр/опция.

Пример:

// Будем показывать тайлы для большего уровня масштабирования,
// растянутые в два раза до размера 512х512 пикселей
// Например, для экономии трафика.
var layer = new ymaps.Layer('', {
    projection: ymaps.projection.sphericalMercator
});
layer.getTileUrl = function (tileNumber, zoom) {
    return [
        'http://tile.openstreetmap.org',
        Math.max(zoom - 1, 0), tileNumber[0], tileNumber[1]
    ].join('/') + '.png';
}
layer.getTileSize = function (zoom) {
    if (zoom == 0) {
        return [256, 256];
    }
    return [512, 512];
}
map.copyrights.add('© OpenStreetMap contributors, CC-BY-SA');

getTileUrl

{String|null} getTileUrl(tileNumber, tileZoom)

Returns URL тайла по его номеру и уровню масштабирования или null если для запрашиваемого участка нет данных.

Параметры:

Параметр Значение по умолчанию Описание
tileNumber *

Тип:

tileZoom *

Тип:

* Обязательный параметр/опция.

Пример:

// Определим свою функцию для формирования URL тайла
var layer = new ymaps.Layer('');
layer.getTileUrl = function (tileNumber, zoom) {
    return [
        'http://tile.openstreetmap.org',
        zoom, tileNumber[0], tileNumber[1]
    ].join('/') + '.png';
}

getTileUrlTemplate

{String|Function} getTileUrlTemplate()

Returns строковый шаблон URL тайла или функцию, которая его генерирует.

numberToClientBounds

{Number[][]} numberToClientBounds(tileNumber, tileZoom)

Преобразует номер и уровень масштаба тайла в занимаемую тайлом область в клиентских координатах родительского контейнера.

Returns область в клиентских пиксельных координатах.

Параметры:

Параметр Значение по умолчанию Описание
tileNumber *

Тип: Integer[]

Номер тайла.

tileZoom *

Тип: Integer

Уровень масштаба тайла.

* Обязательный параметр/опция.

restrict

{Integer[]|null} restrict(number, tileZoom)

Накладывает ограничения на зону видимости тайлов (в том числе зацикленность карты по осям x, y).

Returns новый номер тайла с учётом ограничений либо null, если тайл не входит в зону видимости.

Параметры:

Параметр Значение по умолчанию Описание
number *

Тип: Integer[]

Номер тайла.

tileZoom *

Тип: Integer

Уровень масштабирования тайла.

* Обязательный параметр/опция.

setTileUrlTemplate

{} setTileUrlTemplate(tileUrlTemplate)

Параметры:

Параметр Значение по умолчанию Описание
tileUrlTemplate *

Тип: String|Function

Строковый шаблон URL тайла, либо функция, которая его генерирует.

* Обязательный параметр/опция.

update

{} update()

Удаляет старые тайлы и запрашивает новые.