Перейти к основному содержимому

vector-layers

В данном разделе рассматривается работа с векторными слоями, представляющие собой геометрические объекты на карте: окружности, ломаные линии, многоугольники.

DG.Path

Абстрактный класс, содержащий базовые опции и константы векторных слоев (Polygon, Polyline, Circle). Не используйте этот класс напрямую. Расширяет Layer.

Опции

ОпцияТипПо умолчаниюОписание
strokeBoolean trueНужно ли рисовать границу фигуры. Установите значение в false, чтобы отключить границы многоугольников или окружностей.
colorString '#3388ff'Цвет границы.
weightNumber 3Ширина границы в пикселях.
opacityNumber 1.0Прозрачность границы.
lineCapString'round'Строка, которая определяет вид границы, на концах ломаной.
lineJoinString 'round'Строка, которая определяет вид границы, на изгибах ломаной.
dashArrayString nullСтрока шаблона границы. Не работает на canvas слоях (например, Android 2).
dashOffsetString nullСтрока, которая определяет расстояние, через которое начинается штриховка. Не работает на canvas слоях (например, Android 2).
fillBoolean dependsЗаполнять ли фигуру цветом. Установите значение в false, чтобы отключить заполнение многоугольников или окружностей.
fillColorString *Цвет заливки. Цвет по умолчанию определяется опцией color.
fillOpacityNumber 0.2Прозрачность заливки.
fillRuleString 'evenodd'Строка, которая задает, как определяется внутренняя область фигуры.
interactiveBoolean trueЕсли false, векторный слой не будет генерировать события мыши и будет вести себя, как часть нижележащего слоя карты.
rendererRendererИспользовать этот экземпляр Renderer для данного векторного объекта. Переопределяет renderer карты, установленный по умолчанию.
classNamestring nullДобавляет класс в соотвествующий атрибут элемента (только для SVG).

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапа, унаследованные от Layer

Методы

МетодВозвращаетОписание
redraw()thisПерерисовывает слой. Удобно при изменении его координат.
setStyle( <Path options> style) thisИзменяет внешний вид объекта с помощью опций класса Path.
bringToFront()thisПозиционирует слой поверх всех остальных.
bringToBack()thisПозиционирует слой под остальными.

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

DG.Polyline

Класс для отрисовки ломаных линий на карте. Расширяет Path.

Пример использования

// создает ломаную красного цвета из массива точек LatLng
var latlngs = [
[-122.68, 45.51],
[-122.43, 37.77],
[-118.2, 34.04],
];
var polyline = DG.polyline(latlngs, { color: 'red' }).addTo(map);
// увеличиваем масштаб так, чтобы было видно всю ломаную
map.fitBounds(polyline.getBounds());

Вы также можете передать многомерный массиив, который представляет собой фигуру MultiPolyline:

// создает красную ломаную из массива массивов точек LatLng
var latlngs = [
[
[-122.68, 45.51],
[-122.43, 37.77],
[-118.2, 34.04],
],
[
[-73.91, 40.78],
[-87.62, 41.83],
[-96.72, 32.76],
],
];

Создание

КонструкторИспользование
DG.polyline( <LatLng[]> latlngs, <Path options> options?) Создает объект ломаной по переданному массиву географических точек и необязательному объекту опций. Вы можете создать объект Polyline, состоящий из множества линий (так называемый MultiPolyline), передав массив массивов географических точек.

Опции

ОпцияТипПо умолчаниюОписание
smoothFactorNumber 1.0Степень упрощения ломаной на каждом уровне масштаба. Большее значение означает более высокую производительность, но худшее качество, меньшее же значение — наоборот.
noClipBoolean: false Отключает отсечение ломаной.

Опции, унаследованные от Path

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапов, унаследованные Layer

Методы

МетодВозвращаетОписание
toGeoJSON()ObjectВозвращает GeoJSON представление ломаной (GeoJSON LineString или MultiLineString).
getLatLngs()LatLng[]Возвращает массив точек объекта или массив массивов точек, в случае мультиломаной.
setLatLngs(<LatLng[]> latlngs)thisЗаменяет все точки ломаной данными из переданного массива.
isEmpty()BooleanВозвращает true, если у Polyline нет точек LatLngs.
getCenter()LatLngВозвращает центр (centroid) ломаной.
getBounds()LatLngBoundsВозвращает границы ломаной.
addLatLng( <LatLng> latlng) <LatLng[]> latlngs?, thisДобавляет точку в ломаную. По умолчанию, добавляет точку в первое звено списка ломаных в случае мультиломаной. Это поведение может быть переопределено передачей определенного звена, как массива элементов LatLng (к которому вы могли получить доступ ранее, с помощью метода getlatlngs).

Методы, унаследованные от Path

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

DG.Polygon

Класс для отрисовки многоугольников на карте. Расширяет Polyline.

Обратите внимание на то, что среди точек, которые передаются для создания многоугольника, не должно быть дополнительной точки, совпадающей с первой - такие точки лучше предварительно отфильтровать.

Пример использования

// создает красный многоугольник из массива точек LatLng
var latlngs = [
[-111.03, 41],
[-111.04, 45],
[-104.05, 45],
[-104.05, 41],
];
var polygon = DG.polygon(latlngs, { color: 'red' }).addTo(map);

// увеличивает масштаб карты до максимального значения, при котором виден весь многоугольник
map.fitBounds(polygon.getBounds());

Возможно также создать многоугольник с дырами, передав массив массивов latlngs, первый latlngs массив отвечает за внешние границы, остальные описывают области внутри.

var latlngs = [
[
[-111.03, 41],
[-111.04, 45],
[-104.05, 45],
[-104.05, 41],
], // внешняя граница
[
[-108.58, 37.29],
[-108.58, 40.71],
[-102.5, 40.71],
[-102.5, 37.29],
], // дыра
];

Также, вы можете передать многомерный массив, который представляет собой мульти-многоугольник (MultiPolygon).

var latlngs = [
[
// первый многоугольник
[
[-111.03, 41],
[-111.04, 45],
[-104.05, 45],
[-104.05, 41],
], // внешняя граница
[
[-108.58, 37.29],
[-108.58, 40.71],
[-102.5, 40.71],
[-102.5, 37.29],
], // дыра
],
[
// второй многоугольник
[
[-109.05, 37],
[-109.03, 41],
[-102.05, 41],
[-102.04, 37],
[-109.05, 38],
],
],
];

Создание

КонструкторОписание
DG.polygon( <LatLng[]> latlngs, <Polyline options> options?)

Опции

Опции, унаследованные от Polyline

Опции, унаследованные от Path

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапов, унаследованные Layer

Методы

Методы, унаследованные от Polyline

Методы, унаследованные от Path

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

DG.Rectangle

Класс для отрисовки прямоугольников на карте. Расширяет Polygon.

Пример использования

// создаем географические границы прямоугольника
var bounds = [
[54.559322, -5.767822],
[56.1210604, -3.02124],
];

// создаем оранжевый прямоугольник
DG.rectangle(bounds, { color: '#ff7800', weight: 1 }).addTo(map);

// подстраиваем центр карты и масштаб так, чтобы прямоугольник было видно
map.fitBounds(bounds);

Создание

КонструкторОписание
DG.rectangle( <LatLngBounds> latLngBounds, <Polyline options> options?)

Опции

Опции, унаследованные от Polyline

Опции, унаследованные от Path

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапов, унаследованные Layer

Методы

МетодВозвращаетОписание
setBounds( <LatLngBounds> latLngBounds) thisПерерисовывает прямоугольник с новыми границами.

Методы, унаследованные от Polygon

Методы, унаследованные от Path

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

DG.Circle

Класс для отрисовки окружности на карте. Расширяет Path. Это аппроксимация, которая начинает отличаться от настоящей окружности ближе к полюсам (из-за искажений проекции).

Пример использование

DG.circle([50.5, 30.5], 200).addTo(map);

Создние

КонструкторОписание
DG.circle( <LatLng> latlng, <Path options> options?) Создает объект круга по переданной географической точке и объекту опций, в котором содежится радиус круга.
DG.circle( <LatLng> latlng, <Number> radius, <Path options> options?) Устаревший способ создания круга, только для совместимости со старым кодом. Не используйте его в своих новых приложениях и плагинах.

Опции

ОпцияТипПо умолчаниюОписание
radiusNumber Радиус круга в метрах.

Опции, унаследованные от Path

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапов, унаследованные Layer

Методы

МетодВозвращаетОписание
setRadius( <Number> radius) thisУстанавливает радиус окружности в метрах
getRadius()NumberВозвращает текущий радиус окружности в метрах
getBounds()LatLngBoundsВозвращает LatLngBounds объекта.

Методы, унаследованные от CircleMarker

Методы, унаследованные от Path

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

DG.CircleMarker

Окружность фиксированного размера с радиусом указанным в пикселях. Расширяет Path.

Создание

КонструкторОписание
DG.circleMarker( <LatLng> latlng, options)Создает объект круглого маркера по переданной географической точке и необязательному объекту опций.

Опции

ОпцияТипПо умолчаниюОписание
radiusNumber 10Радиус маркера в пикселях

Опции, унаследованные от Path

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапа, унаследованные от Layer

Методы

МетодВозвращаетОписание
toGeoJSON()ObjectВозвращает GeoJSON представление круглого маркера (GeoJSON Point).
setLatLng( <LatLng> latLng)thisУстанавливает географическую позицию круглого маркера.
getLatLng()LatLngВозвращает текущую географическую позицию круглого маркера.
setRadius(<Number> radius)thisУстанавливает радиус окружности, значение в пикселях.
getRadius()NumberВозвращает текущее значение радиуса окружности.

Методы, унаследованные от Path

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

DG.Svg

Данный класс позволяет отображать векторные слои с помощью SVG. Наследуется от Renderer.

Из-за технических ограничений, SVG доступен не во всех браузерах (например, Android версий 2.x и 3.x не поддерживает SVG).

SVG не доступен в IE8, но в этом браузере есть поддержка устаревшей технологии VML, и SVG renderer переключится на использование VML, в случае работы под IE8. Поддержка VML в библиотеке существует только для обратной совместимости со старой версией Internet Explorer.

Пример использования

Использование SVG по умолчанию для всех векторных объектов на карте:

var map = DG.map("map", {
renderer: DG.svg();
});

Использование SVG rendrer с дополнительными отступами для определенных векторных объектов:

var map = DG.map('map');
var myRenderer = DG.svg({ padding: 0.5 });
var line = DG.polyline(coordinates, { renderer: myRenderer });
var circle = DG.circle(center, { renderer: myRenderer });

Создание

КонструкторОписание
DG.svg(<SVG options> options?)Создает SVG renderer, используя указанные опции.

Опции

Опции, унаследованные от Renderer

События

События, унаследованные от Layer

События попапа, унаследованные от Layer

Методы

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented

Функции

Есть несколько статических функций, которые могут быть вызваны без создания объекта DG.SVG:

ФункцияВозвращаетОписание
create(<String> name)SVGElementВозвращает экземпляр SVGElement, соответствуйщий имени класса, переданному как аргумент. Например, использование 'line' вернет экземпляр SVGLineElement.
pointsToPath( <[]> rings, <Boolean> closed) StringГенерирует строку SVG path для множества звеньев, каждое звено превращается в "M..L..L.."-инструкции

DG.Canvas

Позволяет отрисовывать векторные слои с помощью canvas. Наследуется от Renderer. В виду технических ограничений, Canvas доступен не во всех браузерах (например, в IE8) и пересекающиеся объекты могут отображаться некорректно, в некоторых крайних случаях.

Пример использована

Использование Canvas по умолчанию для всех векторных объектов на карте:

var map = DG.map('map', {
renderer: DG.canvas();
});

Использование Canvas с дополнительными отступами, для определенных векторных объектов:

var map = DG.map('map');
var myRenderer = DG.canvas({ padding: 0.5 });
var line = DG.polyline(coordinates, { renderer: myRenderer });
var circle = DG.circle(center, { renderer: myRenderer });

Создание Canvas

КонструкторОписание
DG.canvas(<Canvas options> options?)Создает Canvas renderer, используя переданные опции.

Опции

Опции, унаследованные от Renderer

Опции, унаследованные от Layer

События

События, унаследованные от Layer

События попапа, унаследованные от Layer

Методы

Методы попапа, унаследованные от Layer

Методы, унаследованные от Layer

Методы, унаследованные от Evented