Геометрии
Описание
В данном разделе рассматривается работа с геометрическими фигурами: кругами, ломаными линиями, многоугольниками.
Класс DG.Path
Абстрактный класс, содержащий опции и константы векторных слоев (Polygon, Polyline, Circle). Никогда не используется напрямую.
Опции
| Опция |
Тип |
По умолчанию |
Описание |
stroke |
Boolean |
true |
Рисовать ли границу фигуры. Установите значение в false, чтобы отключить границы многоугольников или кругов. |
color |
String |
'#03f' |
Цвет границы. |
weight |
Number |
5 |
Ширина границы в пикселях. |
opacity |
Number |
0.5 |
Прозрачность границы. |
fill |
Boolean |
depends |
Заполнять ли геометрии цветом. Установите значение в false, чтобы отключить заполнение многоугольников или кругов. |
fillColor |
String |
такой же, как color |
Цвет заливки. |
fillOpacity |
Number |
0.2 |
Прозрачность заливки. |
dashArray |
String |
null |
Строка шаблона границы. Не работает на canvas слоях (например, Android 2). |
lineCap |
String |
null |
Определяет фигуру, которая будет использована как наконечник геометрии, если у нее задана граница (stroke). |
lineJoin |
String |
null |
Определяет фигуру, которая будет использована на углах изгибов геометрии, если у нее задана граница (stroke). |
clickable |
Boolean |
true |
Если установлено значение false, тогда события мышки геометрии не обрабатываются. |
pointerEvents |
String |
null |
Устанавливает геометрии атрибут pointer-events, если для отрисовки используется SVG. |
className |
String |
'' |
Добавляет класс в соотвествующий атрибут элемента. |
События
Вы можете подписаться на следующие события используя эти методы.
| Событие |
Данные |
Описание |
click |
MouseEvent
| Вызывается при клике на объект. |
dblclick |
MouseEvent
| Вызывается при двойном клике на объект. |
mousedown |
MouseEvent
| Вызывается когда пользователь нажимает кнопку мышки на объекте. |
mouseover |
MouseEvent
| Вызывается при наведении курсора мышки на объект. |
mouseout |
MouseEvent
| Вызывается когда курсор мышки покидает область объекта. |
contextmenu |
MouseEvent
| Вызывается при нажатии правой кнопкой мышки на объекте, предотвращает появление стандартного контекстного меню браузера. |
add |
Event
| Вызывается при добавлении геометрии на карту. |
remove |
Event
| Вызывается при удалении геометрии с карты. |
popupopen |
PopupEvent |
Вызывается при открытии прикрепленного к геометрии балуна. |
popupclose |
PopupEvent |
Вызывается при закрытии прикрепленного к геометрии балуна. |
Методы
| Метод |
Возвращает |
Описание |
addTo(
<Map> map )
|
this |
Добавляет слой на карту. |
getPopup() |
Popup |
Возвращает балун, предварительно привязанный методом bindPopup. |
bindLabel(<String> content, <Label options> options?) |
this |
Добавляет всплывающую подсказку для геометрии или обновляет содержимое уже созданной. |
unbindLabel() |
this |
Отвязывает всплывающую подсказку от геометрии. |
setStyle(
<Path options> object )
|
this |
Изменяет внешний вид геометрии указанный в опциях класса Path. |
getBounds() |
LatLngBounds |
Возвращает прямоугольные границы геометрии. |
bringToFront() |
this |
Позиционирует слой поверх всех остальных. |
bringToBack() |
this |
Позиционирует слой под остальными. |
redraw() |
this |
Перерисовывает слой. Удобно при изменении координат геометрии. |
Статические свойства
| Константа |
Тип |
Значение |
Описание |
SVG |
Boolean |
depends |
True при рендеринге с использованием SVG (true в большинстве современных браузеров). |
VML |
Boolean |
depends |
True при рендеринге с использованием VML (IE 6-8). |
CANVAS |
Boolean |
depends |
True при рендеринге с использованием Canvas (Android 2). |
CLIP_PADDING |
Number |
0.5 для SVG
0.02 для VML |
Указывает, насколько расширена область обрезания геометрий вокруг текущей области просмотра. Маленькие значения означают, что вы увидите обрезанные геометрии при перетаскивании, большие понижают скорость отрисовки. |
Класс DG.Polyline
Класс для отрисовки ломаных линий на карте. Расширяет Path.
// создаем красную ломаную из массива географических точек
var polyline = DG.polyline(latlngs, {color: 'red'}).addTo(map);
// подстраиваем центр карты и масштаб так, чтобы ломаную было видно
map.fitBounds(polyline.getBounds());
Конструктор
| Конструктор |
Использование |
Описание |
DG.Polyline(
<LatLng[]> latlngs,
<Polyline options> options? )
|
DG.polyline(…)
|
Создает объект ломаной по переданному массиву географических точек и необязательному объекту опций. |
Опции
Возможно использование опций класса Path и дополнительных опций:
| Опция |
Тип |
По умолчанию |
Описание |
smoothFactor |
Number |
1.0 |
Степень упрощения ломаной на каждом уровне масштаба. Большее значение означает выше производительность и меньшее качество, меньшее значение — лучшее качество, но ниже производительность. |
noClip |
Boolean |
false |
Отключает обрезание ломаной. |
Методы
Возможно использование методов класса Path и дополнительных методов:
| Метод |
Возвращает |
Описание |
addLatLng(
<LatLng> latlng )
|
this |
Добавляет переданную точку в ломаную. |
setLatLngs(
<LatLng[]> latlngs )
|
this |
Заменяет все точки ломаной массивом переданных географических точек. |
getLatLngs() |
LatLng[] |
Возвращает массив точек геометрии. |
spliceLatLngs(
<Number> index,
<Number> pointsToRemove,
<LatLng> latlng?, … )
|
LatLng[] |
Позволяет добавлять, удалять или заменять точки в ломаной. Синтаксис аналогичен Array#splice. Возвращает массив удаленных точек. |
getBounds() |
LatLngBounds |
Возвращает границы ломаной. |
toGeoJSON() |
Object |
Возвращает GeoJSON представление ломаной (GeoJSON LineString). |
Класс DG.Polygon
Класс для отрисовки многоугольников на карте. Расширяет Polyline.
Обратите внимание на то, что среди точек которые передаются для создания многоугольника не должно быть дополнительной точки, совпадающей с первой.
Конструктор
| Конструктор |
Использование |
Описание |
DG.Polygon(
<LatLng[]> latlngs,
<Polyline options> options? )
|
DG.polygon(…)
|
Создает объект многоугольника по переданному массиву географических точек и необязательному объекту опций. Возможно также создать многоугольник с дырками, передав массив массивов latlngs, первый latlngs массив отвечает за внешние границы, остальные описывают область внутри. |
Методы
У многоугольника те же опции и методы, что и у ломаной, но с некоторыми отличиями.
| Метод |
Возвращает |
Описание |
toGeoJSON() |
Object |
Возвращает GeoJSON представление многоугольника (GeoJSON Polygon). |
Класс DG.Rectangle
Класс для отрисовки прямоугольников на карте. Расширяет Polygon.
// создаем географические границы прямоугольника
var bounds = [[54.9801, 82.8974], [54.9901, 82.9074]];
// создаем оранжевый прямоугольник
DG.rectangle(bounds, {color: "#ff7800", weight: 1}).addTo(map);
// подстраиваем центр карты и масштаб так, чтобы прямоугольник было видно
map.fitBounds(bounds);
Конструктор
| Конструктор |
Использование |
Описание |
DG.Rectangle(
<LatLngBounds> bounds,
<Path options> options? )
|
DG.rectangle(…)
|
Создает объект прямоугольника по переданным географическим границам и необязательному объекту опций. |
Методы
Возможно использование методов класса Path и дополнительно следующих методов:
| Метод |
Возвращает |
Описание |
setBounds(
<LatLngBounds> bounds )
|
this |
Перерисовывает прямоугольник согласно переданных границ. |
Класс DG.Circle
Класс для отрисовки круга на карте. Расширяет CircleMarker.
DG.circle([54.98, 82.89], 200).addTo(map);
Конструктор
| Конструктор |
Использование |
Описание |
DG.Circle(
<LatLng> latlng,
<Number> radius,
<Path options> options? )
|
DG.circle(…)
|
Создает объект круга по переданной географической точке, радиусу в метрах и необязательному объекту опций. |
Методы
| Метод |
Возвращает |
Описание |
getLatLng() |
LatLng |
Возвращает текущее географическое положение круга. |
getRadius() |
Number |
Возвращает текущий радиус круга, значение в метрах. |
setLatLng(
<LatLng> latlng )
|
this |
Устанавливает новое положение круга. |
setRadius(
<Number> radius )
|
this |
Устанавливает радиус круга, значение в метрах. |
toGeoJSON() |
Object |
Возвращает GeoJSON представление круга (GeoJSON Point). |
Класс DG.CircleMarker
Круг фиксированного размера с радиусом указанным в пикселях. Расширяет Path.
Конструктор
| Конструктор |
Использование |
Описание |
DG.CircleMarker(
<LatLng> latlng,
<Path options> options? )
|
DG.circleMarker(…)
|
Создает объект круга по переданной географической точке и необязательному объекту опций. Значение радиуса по умолчанию — 10 пикселей. |
Методы
| Метод |
Возвращает |
Описание |
setLatLng(
<LatLng> latlng )
|
this |
Устанавливает позицию круга. |
setRadius(
<Number> radius )
|
this |
Устанавливает радиус круга, значение в пикселях. |
toGeoJSON() |
Object |
Возвращает GeoJSON представление круга (GeoJSON Point). |