Дополнительные слои
DG.LayerGroup
Используется для группировки нескольких слоев, чтобы обрабатывать их как один. При добавлении
группового слоя на карту, все другие слои, добавляемые и удаляемые из группы, также будут
добавлены или удалены с карты. Расширяет DG.Layer
.
DG.layerGroup([marker1, marker2]).addLayer(polyline).addTo(map);
Создание
Конструктор | Описание |
---|---|
DG.layerGroup(
|
Создает объект группы, принимает начальный набор слоев для группировки (опционально). |
Опции
Опции, унаследованные от Layer
События
События, унаследованные от Layer
Методы
Метод | Возвращает | Описание |
---|---|---|
toGeoJSON() |
Object |
Возвращает
GeoJSON объект, описывающий группу слоев, как GeometryCollection . |
addLayer(
|
this |
Добавляет указанный слой в группу. |
removeLayer(
|
this |
Удаляет указанный слой из группы. |
removeLayer(
|
this |
Удаляет из группы слой, с указанным ID. |
hasLayer(
|
Boolean |
Возвращает true , если указанный слой уже добавлен в группу. |
clearLayers() |
this |
Удаляет все слои из группы. |
invoke(
|
this |
Вызывает метод methodName у каждого слоя из группы. Возможна передача
дополнительных параметров. Пропускает слои, у которых не реализован methodName . |
eachLayer(
|
this |
Итерационно обходит все слои группы. Возможна передача контекстного объекта в функцию итератор.
group.eachLayer(function (layer) {
layer.bindPopup('Hello');
}); |
getLayer(
|
Layer |
Возвращает слой с указанным ID. |
getLayers() |
Layer[] |
Возвращает массив всех слоев группы. |
setZIndex(
|
this |
Вызывает метод setZIndex у каждого слоя из группы, передавая аргумент z-index. |
getLayerId(
|
Number |
Возвращает ID для указанного слоя. |
Методы, унаследованные от Layer
Методы, унаследованные от Evented
DG.FeatureGroup
Расширяет DG.LayerGroup
, добавляя обработку событий мыши
(получаемых от членов группы) и общий метод bindPopup.
DG.featureGroup([marker1, marker2, polyline])
.bindPopup('Привет, Мир!')
.on('click', function () {
alert('Вы щелкнули по группе!');
})
.addTo(map);
Создание
Конструктор | Описание |
---|---|
DG.featureGroup(
|
Создает объект группы, принимает начальный набор слоев для группировки (опционально). |
Опции
Опции, унаследованные от Layer
События
События, унаследованные от Layer
Методы
Метод | Возвращает | Описание |
---|---|---|
setStyle(
|
this |
Устанавливает указанные опции векторного объекта для каждого слоя из группы, у которого реализован
метод setStyle . |
bringToFront() |
this |
Позиционирует слой группы поверх остальных слоев. |
bringToBack() |
this |
Позиционирует слой группы под остальными слоями. |
getBounds() |
LatLngBounds |
Возвращает прямоугольные границы LatLngBounds объекта Feature Group (для корректной работы метода слои в группе должны возвращать подобную информацию о себе). |
Методы, унаследованные от LayerGroup
Методы, унаследованные от Layer
Методы, унаследованные от Evented
DG.GeoJSON
Описывает объект GeoJSON или массив объектов GeoJSON. Позволяет корректно интерпретировать данные
GeoJSON и отобразить их на карте. Расширяет DG.FeatureGroup
.
DG.geoJson(data, {
style: function (feature) {
return { color: feature.properties.color };
},
})
.bindPopup(function (layer) {
return layer.feature.properties.description;
})
.addTo(map);
Создание
Конструктор | Описание |
---|---|
DG.geoJSON(
|
Создает слой GeoJSON. Опционально принимает объект в формате
GeoJSON (возможна передача этого объекта позже,
используя метод addData ) и объект с опциями . |
Опции
Опция | Тип | Значение по умолчанию |
Описание |
---|---|---|---|
pointToLayer |
Function |
* |
Функция , определяющая, как точки GeoJSON будут создавать слои API карт.
API карт вызывает метод, если он реализован, передавая объекты точек GeoJSON и
LatLng .
По умолчанию, будут создаваться обычные Маркеры :
function(geoJsonPoint, latlng) {
return DG.marker(latlng);
}
|
style |
Function |
* |
Функция , определяющая
Path options
для стилизации отображения GeoJSON линий и полигонов. API карт вызывает метод, если он реализован,
при каждом добавлении данных. По умолчанию, стили никак не изменяются:
function (geoJsonFeature) {
return {}
}
|
onEachFeature |
Function |
* |
Функция , которая будет вызвана после каждого создания и стилизации нового
слоя .
Удобно использовать для подключения обработчиков событий и попапов.
По умолчанию, никаких дополнительных действий не происходит:
function (layer) {}
|
filter |
Function |
* |
Функция , которая определяет, должен ли отображаться указанный объект или нет.
По умолчанию, отображаются все объекты:
function (geoJsonFeature) {
return true;
}
|
coordsToLatLng |
Function |
* |
Функция , которая будет использоваться для преобразования координат GeoJSON
в координаты LatLng s.
По умолчанию будет использован статический метод coordsToLatLng . |
Опции, унаследованные от Layer
События
События, унаследованные от Layer
Методы
Методы, унаследованные от FeatureGroup
Методы, унаследованные от LayerGroup
Методы, унаследованные от Layer
Методы, унаследованные от Evented
Статические функции
Есть несколько статических функций, которые можно использовать без создания экземпляров класса DG.GeoJSON:
Функция | Возвращает | Описание |
---|---|---|
geometryToLayer(
|
Layer |
Создает Слой на основе переданного
GeoJSON объекта. Может использовать собственные функции pointToLayer
и/или coordsToLatLng , если они переданы в объекте опций. |
coordsToLatLng(
|
LatLng |
Создает объект LatLng из массива
двух чисел, переданных в формате (longitude, latitude), или трех чисел, в формате (longitude, latitude, altitude),
которые используются в GeoJSON для представления точек. |
coordsToLatLngs(
|
Array |
Создает многомерный массив объектов LatLng
из массива GeoJSON координат. levelsDeep определяет уровень вложенности (0 для массива точек,
1 для массива массивов точек, и т. д., по умолчанию 0). Может использовать собственную функцию
coordsToLatLng для преобразования. |
latLngToCoords(
|
Array |
Обратная операция для coordsToLatLng |
latLngsToCoords(
|
Array |
Обратная операция для coordsToLatLngs
Опция closed определяет, нужно ли добавлять первую точку в конец массива и используется
только в случае, если levelsDeep равен 0. |
asFeature(
|
Object |
Нормализует геометрические примитивы GeoJSON в объекты GeoJSON. |
DG.GridLayer
Универсальный класс для обработки тайловой сетки из HTML элементов. Это базовый класс, от которого наследуются
все тайловые слои. Поддерживает создание, анимацию и другие действия с элементами, представляющими тайл, такими
как <canvas>
, <img>
или <div>
.
Использование в синхронном коде
Для того, чтобы создать собственный слой, нужно произвести наследование от GridLayer и реализовать метод
create()
, которому будет передан объект Point
с x
, y
и z
(уровень увеличения) координатами для отображения тайла.
var CanvasLayer = DG.GridLayer.extend({
createTile: function (coords) {
// создаем элемент <canvas>
var tile = DG.DomUtil.create('canvas', 'leaflet-tile');
// устанавливаем размер тайла
var size = this.getTileSize();
tile.width = size.x;
tile.height = size.y;
// получаем объект контекста и рисуем что-нибудь на нем, используя coords.x, coords.y и coords.z
var ctx = canvas.getContext('2d');
// возвращаем получившийся объект, чтобы его можно было отобразить на экране
return tile;
},
});
Использование в асинхронном коде
Создавать объекты тайлов можно и асинхронно. Когда объект тайла полностью создан, его можно вернуть в API карт, используя функцию обратного вызова done().
var CanvasLayer = DG.GridLayer.extend({
createTile: function (coords, done) {
var error;
// создаем элемент <canvas>
var tile = DG.DomUtil.create('canvas', 'leaflet-tile');
// устанавливаем размер тайла
var size = this.getTileSize();
tile.width = size.x;
tile.height = size.y;
// рисуем что-нибудь и возвращаем итоговый тайл, используя функцию обратного вызова done()
done(error, tile);
},
});
Создание
Конструктор | Описание |
---|---|
DG.gridLayer(
|
Создает новый объект GridLayer. |
Опции
Опция | Тип | Значение по умолчанию |
Описание |
---|---|---|---|
tileSize |
Number|Point |
256 |
Ширина и высота тайлов. Используйте число, если ширина и высота одинаковые,
или объект DG.point(ширина, высота) в противном случае. |
opacity |
Number |
1.0 |
Уровень полупрозрачности тайлов. Может использоваться в функции createTile() . |
updateWhenIdle |
Boolean |
depends |
Если значение false , новые тайлы подгружаются в процессе перемещения карты, в противном случае,
только после окончания перемещения карты по экрану (можно использовать для лучшей производительности).
true по умолчанию на мобильных устройствах, и false в остальных случаях. |
updateInterval |
Number |
200 |
Тайлы не будут обновляться чаще, чем раз в updateInterval миллисекунд. |
attribution |
String |
null |
Информация, которая будет отображаться в строке об авторстве, например "© 2GIS". |
zIndex |
Number |
1 |
zIndex для тайлового слоя. |
bounds |
LatLngBounds |
undefined |
Если задан, тайлы будут загружаться только для указанного региона, заданного
LatLngBounds . |
minZoom |
Number |
0 |
Минимальный уровень масштабирования, при котором будут загружаться тайлы. По умолчанию - вся карта. |
maxZoom |
Number |
undefined |
Максимальный уровень масштабирования, при котором будут загружаться тайлы. По умолчанию не задан. |
noWrap |
Boolean |
false |
Будет ли зацикливаться отображение слоя при малом масштабе. Если параметр true , слой
будет отображен только один раз. |
pane |
String |
'tilePane' |
Панель карты , на которую будет добавлен слой. |
События
Событие | Данные | Описание |
---|---|---|
loading |
Event |
Возникает, когда GridLayer начинает загружать тайлы. |
tileunload |
TileEvent |
Возникает, когда тайл удаляется с карты (например, при выходе его за пределы экрана). |
tileloadstart |
TileEvent |
Возникает, когда запрашивается тайл. |
tileerror |
TileEvent |
Возникает при ошибке загрузки тайла. |
tileload |
TileEvent |
Возникает, когда тайл загружен. |
load |
TileEvent |
Возникает, когда GridLayer загрузил все видимые тайлы. |
События, унаследованные от Layer
Методы
Метод | Возвращает | Описание |
---|---|---|
bringToFront() |
this |
Позиционирует тайловый слой поверх остальных тайловых слоев. |
bringToBack() |
this |
Позиционирует тайловый слой под остальными тайловыми слоями. |
getAttribution() |
String |
Используется элементом управления об авторстве, и возвращает соответствующие свойства. |
getContainer() |
String |
Возвращает HTML элемент, который содержит тайлы для данного слоя. |
setOpacity(
|
this |
Меняет значение opacity слоя. |
setZIndex(
|
this |
Меняет значение zIndex слоя. |
isLoading() |
Boolean |
Возвращает true , если хотя бы один тайл загружен не до конца. |
redraw() |
this |
Перересовывает все тайлы, запрашивая их повторно. |
getTileSize() |
Point |
Возвращает значение опции tileSize приведенное к объекту
DG.Point. Используется методом createTile() . |
Методы, используемые при наследовании
Слои, наследующие от DG.GridLayer
должны поддерживать следующие методы:
Метод | Возвращает | Описание |
---|---|---|
createTile(
|
HTMLElement |
Вызывается только из API карт. Метод должен быть переопределен теми классами, которые расширяют
GridLayer .
Метод должен возвращать HTMLElement для позиции, координаты которой передаются в
coords . Если указана функция обратного вызова done , она должна быть вызвана
после загрузки и отрисовки тайла.
|
Методы, унаследованные от Layer
Методы, унаследованные от Evented