Слои
Описание
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 |
Позиционирует слой под остальными. |