Layer
Расширяет ILayer, IPositioningContext.
Тайловый слой. Позволяет отображать на карте подложку, состоящую из тайлов.
Конструктор
Layer(tileUrlTemplate[, options])
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: String|Function Строковый шаблон URL тайла, либо функция, которая генерирует URL тайла. Для строкового шаблона поддерживается подстановка: • %c - заменяется на • %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. |
|
— |
Тип: Object Опции. |
|
0.5 |
Тип: Number Яркость слоя. Задается числом от 0 до 1. 0 соответствует черному цвету, 1 - белому. |
|
null |
Тип: String|null Опция, указывающая по какому url нужно загрузить картинку, если картинка для тайла не загрузилась. Если значение null, то будет показан стандартный тайл с текстовым сообщением. Для прозрачных тайлов опция notFoundTile не применяется, и вместо незагруженных тайлов ничего показываться не будет. |
|
'layers' |
Тип: IPane Родительский контейнер слоёв. |
|
— |
Тип: Object Проекция слоя. |
|
[256, 256] |
Тип: Number[] Размер тайлов слоя. |
|
false |
Тип: Boolean Флаг, показывающий, являются ли тайлы слоя прозрачными. |
|
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');
Поля
Имя |
Тип |
Описание |
Менеджер событий. Унаследовано от IEventEmitter. |
||
Менеджер опций. Унаследовано от ICustomizable. |
События
Имя |
Описание |
Событие изменения яркости слоя. Унаследовано от ILayer. |
|
Событие изменения доступной информации об авторских правах. Унаследовано от ILayer. |
|
Сменилась карта. Поля данных: • oldMap - старая карта; • newMap - новая карта. Унаследовано от IChildOnMap. |
|
Изменение в опциях объекта. Унаследовано от ICustomizable. |
|
Сменился родительский объект. Поля данных: • oldParent - старый родитель; • newParent - новый родитель. Унаследовано от IChild. |
|
Событие изменения доступной информации о диапазоне уровней масштабирования. Унаследовано от ILayer. |
Методы
Имя |
Возвращает |
Описание |
Number[] |
Returns номер тайла, в который попадает указанная точка при заданном уровне масштаба тайлов. |
|
Number[] |
Преобразует клиентские пиксельные координаты в глобальные. Унаследован от IPositioningContext. |
|
Number |
Необязательный метод. Возвращает яркость слоя. В зависимости от суммарной яркости слоев, добавленных на карту, выбирается цвет логотипа и копирайтов на карте. Унаследован от ILayer. |
|
Необязательный метод. Запрашивает информацию об авторских правах в указанной точке с указанным коэффициентом масштабирования. Возвращает объект-promise, который будет подтверждён и передаст в качестве результата массив строк или DOM-элементов с информацией об авторских правах. Унаследован от ILayer. |
||
getPane() |
Возвращает контейнер, в котором находится слой. |
|
Returns ссылку на родительский объект. Унаследован от IChildOnMap. |
||
Number[] |
Возвращает размеры тайлов в зависимости от масштаба. |
|
String|null |
Returns URL тайла по его номеру и уровню масштабирования или null если для запрашиваемого участка нет данных. |
|
String|Function |
Returns строковый шаблон URL тайла или функцию, которая его генерирует. |
|
getZoom() |
Number |
Returns текущий уровень масштабирования, в котором работает контекст позиционирования. Унаследован от IPositioningContext. |
Необязательный метод. Определяет доступный в указанной точке диапазон уровней масштабирования. Если данные есть, то возвращенный объект-promise будет подтвержден и передаст в качестве результата массив из двух чисел - минимальный и максимальный доступный в точке уровень масштабирования. Если данных нет, то promise отклоняется с указанием ошибки. Унаследован от ILayer. |
||
Number[][] |
Преобразует номер и уровень масштаба тайла в занимаемую тайлом область в клиентских координатах родительского контейнера. |
|
Integer[]|null |
Накладывает ограничения на зону видимости тайлов (в том числе зацикленность карты по осям x, y). |
|
Устанавливает родительский объект. Унаследован от IChildOnMap. |
||
Number[] |
Преобразует глобальные пиксельные координаты в клиентские. Унаследован от IPositioningContext. |
|
update() |
Удаляет старые тайлы и запрашивает новые. |
Описание методов
clientPixelsToNumber
{Number[]} clientPixelsToNumber(clientPixelPoint, tileZoom)
Returns номер тайла, в который попадает указанная точка при заданном уровне масштаба тайлов.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Number Точка в клиентских пиксельных координатах. |
|
— |
Тип: Number Уровень масштаба тайла. |
* Обязательный параметр/опция.
getPane
{IPane} getPane()
Возвращает контейнер, в котором находится слой.
Returns контейнер.
getTileSize
{Number[]} getTileSize(zoom)
Возвращает размеры тайлов в зависимости от масштаба.
Returns размеры тайла по горизонтали и вертикали для указанного коэффициента масштабирования.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: 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 если для запрашиваемого участка нет данных.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: |
|
— |
Тип: |
* Обязательный параметр/опция.
Пример:
// Определим свою функцию для формирования 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 область в клиентских пиксельных координатах.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Integer[] Номер тайла. |
|
— |
Тип: Integer Уровень масштаба тайла. |
* Обязательный параметр/опция.
restrict
{Integer[]|null} restrict(number, tileZoom)
Накладывает ограничения на зону видимости тайлов (в том числе зацикленность карты по осям x, y).
Returns новый номер тайла с учётом ограничений либо null, если тайл не входит в зону видимости.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Integer[] Номер тайла. |
|
— |
Тип: Integer Уровень масштаба тайла. |
* Обязательный параметр/опция.
setTileUrlTemplate
{} setTileUrlTemplate(tileUrlTemplate)
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: String|Function Строковый шаблон URL тайла, либо функция, которая его генерирует. |
* Обязательный параметр/опция.
Обязательный параметр/опция.