Слои

Описание

API карт позволяет накладывать пользовательские растровые слои поверх слоя карты. Это дает возможность отображать на карте практически любые графические объекты. Используемая по умолчанию система координат — WGS84.

Класс DG.TileLayer

Используется для загрузки и отображения тайлового слоя, реализует интерфейс ILayer.

var url = 'http://tile{s}.traffic.2gis.ru/novosibirsk/traffic/{z}/{x}/{y}/speed/0/';
DG.tileLayer(url, {subdomains: '012'}).addTo(map);

Конструктор

Конструктор Использование Описание
DG.TileLayer( <String> urlTemplate, <TileLayer options> options? ) DG.tileLayer(…) Создает объект тайлового слоя по переданному шаблону URL и необязательному объекту опций.

Шаблон URL

Строка следующего вида:

'http://{s}.somedomain.com/blabla/{z}/{x}/{y}.png'

{s} — один из доступных поддоменов (используется для параллельной загрузки тайлов браузером). Поддомены указываются в опциях. a, b или c — значения по умолчанию, {z} — уровень зума, {x} и {y} — координаты тайлов в тайловой сетке.

В шаблонах можно использовать собственные ключи, например так:

DG.tileLayer('http://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png', {foo: 'bar'});

Опции

Опция Тип По умолчанию Описание
minZoom Number 0 Минимальный уровень зума.
maxZoom Number 18 Максимальный уровень зума.
maxNativeZoom Number null Максимальный уровень зума исходных тайлов. Если значение установлено, на всех уровнях зума больше maxNativeZoom будут отображены смасштабированные тайлы максимально доступного зума.
tileSize Number 256 Размер тайла (ширина и высота в пикселях, предполагается что тайл квадратный).
subdomains String или String[] 'abc' Поддомены тайлового сервиса. Могут передаваться одной строкой (где каждая буква — имя поддомена) или массивом строк.
errorTileUrl String '' URL тайла, который будет показан в случае ошибки загрузки.
attribution String '' Копирайты слоя.
tms Boolean false Если true, тогда для тайлов выполняется инверсия нумерации по оси Y (актуально для TMS сервисов).
continuousWorld Boolean false Если установлено значение true, тогда координаты тайлов не будут "заворачиваться" по ширине (от -180° до 180° долготы) или высоте (от -90° до 90° широты). Удобно, если вы используете API для собственных карт, не отражающих реальный мир (например, игры, карты помещений, фото).
noWrap Boolean false Если установлено значение true, тогда тайлы не будут загружаться за пределами указанной ширины мира (от -180° до 180° долготы).
zoomOffset Number 0 Значение, на которое будет смещен уровень масштабирования в адресе тайла.
zoomReverse Boolean false Если установлено значение true, тогда уровень масштабирования в адресе тайла будет обратным (maxZoom - zoom вместо zoom).
opacity Number 1.0 Прозрачность тайлового слоя.
zIndex Number null Задает z-index тайлового слоя. По умолчанию не установлен.
unloadInvisibleTiles Boolean depends Если установлено значение true, тогда все тайлы которые выходят за область видимости удаляются после перемещения карты (для лучшей производительности). По умолчанию true для мобильного WebKit, в остальных случаях false.
updateWhenIdle Boolean depends Если установлено значение false, тогда новые тайлы подгружаются во время перетаскивания карты, иначе только по завершению перетаскивания (для лучшей производительности). По умолчанию true для мобильного WebKit, в остальных случаях false.
detectRetina Boolean false Если установлено значение true и у пользователя устройство с Retina экраном, тогда вместо одного тайла будет загружено 4 с большего уровня масштабирования, также изображениям устанавливается размер на 50% меньше их реального разрешения. Таким образом достигается лучшее качество отображения тайлов на экранах с высоким разрешением.
reuseTiles Boolean false Если установлено значение true, тогда все тайлы, которые не видны после изменения центра карты, добавляются в очередь переиспользования, из которой они будут взяты, если опять попадут в область видимости.

События

Вы можете подписаться на следующие события используя эти методы.

Событие Данные Описание
loading Event Вызывается при начале загрузки тайлов.
load Event Вызывается при окончании загрузки видимых тайлов.
tileloadstart TileEvent Вызывается при запросе тайла и начале его загрузки.
tileload TileEvent Вызывается после загрузки тайла.
tileunload TileEvent Вызывается при удалении тайла (например, при включенном режиме unloadInvisibleTiles).

Методы

Метод Возвращает Описание
addTo( <Map> map ) this Добавляет слой на карту.
bringToFront() this Позиционирует тайловый слой поверх других слоев.
bringToBack() this Позиционирует тайловый слой под другими слоями.
setOpacity( <Number> opacity ) this Изменяет прозрачность тайлового слоя.
setZIndex( <Number> zIndex ) this Устанавливает z-index тайлового слоя.
redraw() this Очищает все текущие тайлы и запрашивает новые.
setUrl( <String> urlTemplate ) this Обновляет URL шаблон слоя и перерисовывает его.
getContainer() HTMLElement Возвращает HTML элемент, который содержит тайлы данного слоя.

Класс DG.TileLayer.WMS

Используется для отображения данных WMS сервисов. Расширяет TileLayer.

var nexrad = DG.tileLayer.wms("http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi", {
    layers: 'nexrad-n0r-900913',
    format: 'image/png',
    transparent: true,
    attribution: "Weather data © 2014 IEM Nexrad"
});

Конструктор

Конструктор Использование Описание
DG.TileLayer.WMS( <String> baseUrl, <TileLayer.WMS options> options ) DG.tileLayer.wms(…) Создает объект тайлового WMS слоя по переданному URL WMS-сервиса и объекту опций.

Опции

Включает все опции TileLayer и дополнительно:

Опция Тип По умолчанию Описание
layers String '' Обязательный список WMS слоев для отображения, разделяются запятой.
styles String '' Список WMS стилей, разделяются запятой.
format String 'image/jpeg' Формат WMS-изображений (используйте 'image/png' для слоев с прозрачностью).
transparent Boolean false Если установлено значение true, тогда WMS сервис вернет изображения с прозрачностью.
version String '1.1.1' Используемая версия WMS сервиса.

Методы

Метод Возвращает Описание
setParams( <WMS parameters> params, <Boolean> noRedraw? ) this Сливает объект с новыми параметрами и перезапрашивает тайлы текущей области видимости (если опция noRedraw не установлена в true).

Класс DG.ImageOverlay

Используется для загрузки и отображения одного изображения в определенной области карты, реализует интерфейс ILayer.

var imageUrl = 'http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',
    imageBounds = [[54.712216, 82.22655], [54.773941, 82.12544]];
DG.imageOverlay(imageUrl, imageBounds).addTo(map);

Конструктор

Конструктор Использование Описание
DG.ImageOverlay( <String> imageUrl, <LatLngBounds> bounds, <ImageOverlay options> options? ) DG.imageOverlay(…) Создает объект изображения дополнительного слоя по переданному URL и географическим координатам, к которым оно привязано.

Опции

Опция Тип По умолчанию Описание
opacity Number 1.0 Прозрачность слоя.
attribution String '' Текст атрибуции слоя.

Методы

Метод Возвращает Описание
addTo( <Map> map ) this Добавляет слой на карту.
setOpacity( <Number> opacity ) this Устанавливает прозрачность слоя.
setUrl( <String> imageUrl ) this Меняет URL адрес изображения.
bringToFront() this Позиционирует слой поверх остальных.
bringToBack() this Позиционирует слой под остальными.