ol/interaction/Draw~Draw
import Draw from 'ol/interaction/Draw.js';
Взаимодействие для рисования геометрических объектов.
-
new Draw(options)
-
Имя Тип Описание typeType Тип геометрии объектов, рисуемых этим экземпляром.
clickTolerancenumber (по умолчанию 6) Максимальное расстояние в пикселях между событиями «down» и «up», при котором событие «up» считается событием «click» и фактически добавляет точку/вершину к рисуемой геометрии. Значение по умолчанию
6выбрано, чтобы взаимодействие рисования корректно работало как с мышью, так и на сенсорных устройствах.featuresCollection<Feature> | undefined Коллекция, в которую помещаются нарисованные объекты.
sourceVectorSource | undefined Источник, в который помещаются нарисованные объекты.
dragVertexDelaynumber (по умолчанию 500) Задержка в миллисекундах после pointerdown, по истечении которой текущую вершину можно перетащить в точное положение.
snapTolerancenumber (по умолчанию 12) Расстояние в пикселях для привязки к завершению рисования. Должно быть больше
0.stopClickboolean (по умолчанию false) Отключает генерацию событий click, singleclick и doubleclick во время рисования.
maxPointsnumber | undefined Количество точек, которые можно нарисовать до завершения кольца полигона или линейной строки. По умолчанию ограничений нет.
minPointsnumber | undefined Количество точек, которые необходимо нарисовать, прежде чем можно будет завершить кольцо полигона или линейную строку. По умолчанию для колец полигонов используется
3, а для линейных строк —2.finishConditionCondition | undefined Функция, принимающая
MapBrowserEventи возвращающая логическое значение, которое указывает, можно ли завершить рисование. Не используется при рисовании геометрий POINT или MULTI_POINT.styleStyleLike | FlatStyleLike | undefined Стиль эскизных объектов. В зависимости от режима взаимодействие рисования может содержать до трёх эскизных объектов. Оно всегда будет содержать объект с геометрией
Point, соответствующей текущему положению курсора. Если выбран режимLineStringилиPolygonи нарисована хотя бы одна точка, оно также будет содержать объект с геометриейLineString, соответствующей линии между уже нарисованными точками и текущим положением курсора. Если выбран режимPolygonи нарисована хотя бы одна точка, оно также будет содержать объект с геометриейPolygon, соответствующей полигону между уже нарисованными точками и текущим положением курсора (обратите внимание, что при рисовании только одной точки этот полигон содержит лишь две точки). Если выбран режимCircleи нарисована одна точка, оно также будет содержать объект с геометриейCircle, центр которой совпадает с нарисованной точкой, а радиус определяется расстоянием между нарисованной точкой и курсором.geometryFunctionGeometryFunction | undefined Функция, вызываемая при обновлении координат геометрии.
geometryNamestring | undefined Имя геометрии, используемое для объектов, создаваемых взаимодействием рисования.
conditionCondition | undefined Функция, принимающая
MapBrowserEventи возвращающая логическое значение, указывающее, нужно ли обработать это событие. По умолчанию используетсяnoModifierKeys, то есть щелчок добавляет вершину или отключает рисование от руки.freehandboolean (по умолчанию false) Включает режим рисования от руки для линий, полигонов и окружностей. В этом режиме взаимодействие всегда работает в режиме рисования от руки, который имеет приоритет над параметром
freehandCondition.freehandConditionCondition | undefined Условие, активирующее рисование от руки для линий и полигонов. Эта функция принимает
MapBrowserEventи возвращает логическое значение, указывающее, нужно ли обработать это событие. По умолчанию используетсяshiftKeyOnly, то есть рисование от руки активируется клавишей Shift.traceboolean | Condition (по умолчанию false) Обводить часть другой геометрии. Игнорируется в режиме рисования от руки.
traceSourceVectorSource | undefined Источник объектов для обводки. Если обводка активна и
traceSourceне задан, будет использоватьсяsourceвзаимодействия. Для обводки необходимо настроить взаимодействие с помощьюtraceSourceилиsource.wrapXboolean (по умолчанию false) Оборачивать мир по горизонтали на эскизном слое.
geometryLayoutGeometryLayout (по умолчанию 'XY') Структура координат геометрий объектов, создаваемых взаимодействием рисования.
Генерируемые события:
-
change(BaseEvent) — Общее событие изменения. Вызывается при увеличении счётчика ревизий. -
change:active(ObjectEvent) -
drawabort(DrawEvent) — Вызывается при отмене рисования объекта -
drawend(DrawEvent) — Вызывается по завершении рисования объекта -
drawstart(DrawEvent) — Вызывается при начале рисования объекта -
error(BaseEvent) — Общее событие ошибки. Вызывается при возникновении ошибки. -
propertychange(ObjectEvent) — Вызывается при изменении свойства.
-
Наследует
Наблюдаемые свойства
| Имя | Тип | Можно задать | Тип ObjectEvent | Описание |
|---|---|---|---|---|
active | boolean | да | change:active |
|
Методы
-
abortDrawing()
-
Прекратить рисование, не добавляя создаваемый объект на целевой слой.
-
appendCoordinates(coordinates)
-
Добавить координаты в конец геометрии, которая в данный момент создаётся. Это можно использовать при рисовании LineString или Polygon. Координаты будут добавлены либо к текущему LineString, либо к внешнему кольцу текущего Polygon. Если геометрия не создаётся, будет создана новая.
Имя Тип Описание coordinatesLineCoordType Линейные координаты, которые нужно добавить в массив координат.
-
changed() унаследован
-
Увеличивает счётчик ревизий и отправляет событие 'change'.
-
dispatchEvent(event){boolean | undefined} унаследован
-
Отправляет событие и вызывает все обработчики, ожидающие события этого типа. Параметр event может быть строкой или объектом со свойством
type.Имя Тип Описание eventBaseEvent | string Объект события.
Возвращает:
false, если кто-либо вызвал preventDefault для объекта события или если какой-либо обработчик вернул false.
-
extend(feature)
-
Запускает режим рисования, начиная с существующей геометрии, к которой будут добавлены новые точки. Работает только с объектами, имеющими геометрии
LineString, в которых взаимодействие расширяет линии, добавляя точки в конец массива координат. При этом изменяется исходный объект, а не создаётся его копия.Функция отправляет событие
drawstart.Имя Тип Описание featureFeature<LineString> Объект, который нужно расширить.
-
finishDrawing(){Feature<SimpleGeometry> | null}
-
Прекратить рисование и добавить создаваемый объект на целевой слой. Событие
DRAWENDотправляется до добавления объекта.Возвращает:
Нарисованный объект.
-
get(key){*} унаследован
-
Получает значение.
Имя Тип Описание keystring Имя ключа.
Возвращает:
Значение.
-
getActive(){boolean} унаследован
-
Возвращает, активно ли в данный момент взаимодействие.
Возвращает:
true, если взаимодействие активно, в противном случаеfalse.
-
getFreehand(){boolean}
-
Возвращает, включён ли для этого взаимодействия режим рисования от руки.
Возвращает:
Рисование от руки.
-
getKeys(){Array.<string>} унаследован
-
Получает список имён свойств объекта.
Возвращает:
Список имён свойств.
-
getMap(){Map | null} унаследован
-
Получает карту, связанную с этим взаимодействием.
Возвращает:
Карта.
-
getOverlay(){VectorLayer}
-
Получает слой наложения, на котором это взаимодействие отображает создаваемые объекты.
Возвращает:
Слой наложения.
-
getPointerCount(){number} унаследован
-
Возвращает текущее количество указателей, участвующих во взаимодействии, например
2при использовании двух пальцев.Возвращает:
Количество указателей.
-
getProperties(){NoInfer.<Properties>} унаследован
-
Получает объект со всеми именами свойств и их значениями.
Возвращает:
Объект.
-
getRevision(){number} унаследован
-
Получает номер версии этого объекта. При каждом изменении объекта номер версии увеличивается.
Возвращает:
Номер ревизии.
-
handleEvent(event){boolean}
-
Обрабатывает событие
map browser eventи может выполнять рисование или завершать его.Имя Тип Описание eventMapBrowserEvent<PointerEvent> Событие браузера карты.
Возвращает:
false, чтобы остановить распространение события.
-
on(type, listener){EventsKey | Array<EventsKey>} унаследован
-
Ожидает событие заданного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.
-
once(type, listener){EventsKey | Array<EventsKey>} унаследован
-
Ожидает событие заданного типа один раз.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.
-
removeLastPoint()
-
Удаляет последнюю точку объекта, который создаётся в данный момент. Ничего не делает при рисовании геометрий POINT или MULTI_POINT.
-
set(key, value, silent) унаследован
-
Задаёт значение.
Имя Тип Описание keystring Имя ключа.
value* Значение.
silentboolean | undefined Обновить без отправки события.
-
setActive(active) унаследован
-
Активирует или деактивирует взаимодействие.
Имя Тип Описание activeboolean Активно.
-
setFreehand(freehand)
-
Задаёт, выполняется ли рисование в режиме рисования от руки.
Имя Тип Описание freehandboolean Рисование от руки.
-
setProperties(values, silent) унаследован
-
Задаёт набор пар «ключ — значение». Обратите внимание: существующие свойства изменяются, а новые добавляются (существующие свойства не удаляются).
Имя Тип Описание valuesPartial.<NoInfer.<Properties>> Значения.
silentboolean | undefined Обновить без отправки события.
-
un(type, listener) унаследован
-
Прекращает ожидание события заданного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
-
unset(key, silent) унаследован
-
Удаляет свойство.
Имя Тип Описание keystring Имя ключа.
silentboolean | undefined Удалить без отправки события.
© 2005-present, OpenLayers Contributors All rights reserved.Licensed under the BSD 2-Clause License.
https://openlayers.org/en/latest/apidoc/module-ol_interaction_Draw-Draw.html