IPolygonGeometryAccess

Расширяет IFreezable.

Интерфейс доступа к геометрии "Многоугольник".

Конструктор | Поля | События | Методы

Конструктор

IPolygonGeometryAccess()

Поля

Имя

Тип

Описание

events

IEventManager

Менеджер событий объекта.

Унаследовано от IFreezable.

События

Имя

Описание

change

Изменение координат. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • oldCoordinates — старые координаты;
  • newCoordinates - новые координаты;
  • oldFillRule - старый алгоритм заливки;
  • newFillRule - новые алгоритм заливки.

Методы

Имя

Возвращает

Описание

contains(position)

Boolean

Проверяет, лежит ли переданная точка внутри многоугольника.

freeze()

IFreezable

Переводит объект в "замороженный" режим.

Унаследован от IFreezable.

get(index)

Number[][]

Возвращает координаты контура c заданным индексом.

getChildGeometry(index)

ILinearRingGeometryAccess

Создает и возвращает объект ILinearRingGeometryAccess для заданного контура.

getClosest(anchorPosition)

Object

Ищет на контуре многоугольника точку, ближайшую к anchorPosition.

getCoordinates()

Number[][][]

Возвращает массив координат геометрии.

getFillRule()

String

Возвращает идентификатор алгоритма заливки.

getLength()

Integer

Возвращает количество контуров в геометрии.

insert(index, path)

IPolygonGeometryAccess

Добавляет новый контур с заданным индексом.

isFrozen()

Boolean

Возвращает true, если объект находится в "замороженном" режиме, иначе false.

Унаследован от IFreezable.

remove(index)

ILinearRingGeometryAccess

Удаляет контур с заданным индексом.

set(index, path)

IPolygonGeometryAccess

Задает координаты контура c заданным индексом.

setCoordinates(coordinates)

IPolygonGeometryAccess

Задает массив координат геометрии.

setFillRule(fillRule)

IPolygonGeometryAccess

Задает алгоритм заливки многоугольника.

splice(index, number)

ILinearRingGeometryAccess[]

Удаляет определенное число контуров начиная с заданного индекса. При этом на место удаляемых контуров могут быть добавлены новые. Координаты новых контуров можно передавать дополнительными аргументами после параметра number.

unfreeze()

IFreezable

Переводит объект в активный режим.

Унаследован от IFreezable.

Описание событий

change

Изменение координат. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • oldCoordinates — старые координаты;
  • newCoordinates - новые координаты;
  • oldFillRule - старый алгоритм заливки;
  • newFillRule - новые алгоритм заливки.

Описание методов

contains

{Boolean} contains(position)

Проверяет, лежит ли переданная точка внутри многоугольника.

Возвращает признак принадлежности точки многоугольнику.

Параметры:

Параметр

Значение по умолчанию

Описание

position*

Тип: Number[]

Координаты точки.

* Обязательный параметр/опция.

Пример:

var myPolygon = new ymaps.geometry.Polygon([
        [[69, 45], [68, 55], [86, 56]]
    ]);

// Метод работает только с корректно заданной картой.
myPolygon.options.setParent(myMap.options);
myPolygon.geometry.setMap(myMap);

// Проверка, входит ли точка клика в полигон, с заданной выше геометрией.
myMap.events.add('click', function (e) {
    alert(myPolygon.geometry.contains(e.get('coords')) ? 'Ранил!' : 'Мимо!');});

get

{Number[][]} get(index)

Возвращает координаты контура с заданным индексом.

Параметры:

Параметр

Значение по умолчанию

Описание

index*

Тип: Integer

Индекс контура.

* Обязательный параметр/опция.

getChildGeometry

{ILinearRingGeometryAccess} getChildGeometry(index)

Создает и возвращает объект ILinearRingGeometryAccess для заданного контура.

Возвращает объект геометрии, соответствующий заданному контуру.

Параметры:

Параметр

Значение по умолчанию

Описание

index*

Тип: Integer

Индекс контура.

* Обязательный параметр/опция.

getClosest

{Object} getClosest(anchorPosition)

Ищет на контуре многоугольника точку, ближайшую к anchorPosition.

Возвращает объект со следующими полями:

  • position - точка на контуре многоугольника ближайшая к anchorPosition;
  • distance - расстояние от anchorPosition до position;
  • closestPointIndex - индекс вершины многоугольника, ближайшей к position;
  • nextPointIndex - индекс вершины многоугольника, следующей за position;
  • prevPointIndex - индекс вершины многоугольника, предшествующей position;
  • pathIndex - индекс контура многоугольника, к которому относится найденная точка.
    Поля nextPointIndex, prevPointIndex могут отсутствовать, если position совпадает с одной из вершин многоугольника.

Параметры:

Параметр

Значение по умолчанию

Описание

anchorPosition*

Тип: Number[]

Координаты точки, для которой расчитывается ближайшая точка на контуре многоугольника.

* Обязательный параметр/опция.

Пример:

var myPolygon = new ymaps.Polygon([
    [[69, 45], [68, 55], [86, 56], [87, 43]],
    [[60, 48], [62, 60], [80, 62], [80, 48]]
]);
var myPoint = new ymaps.Placemark([74, 52]);
// Создаем кратчайшую нормаль от контура полигона до точки.
var normalVec = new ymaps.Polyline([
    myPolygon.geometry.getClosest(myPoint.geometry.getCoordinates()).position,
    myPoint.geometry.getCoordinates()
]);

myMap.geoObjects
    .add(myPolygon)
    .add(myPoint)
    .add(normalVec);

getCoordinates

{Number[][][]} getCoordinates()

Возвращает массив координат геометрии.

getFillRule

{String} getFillRule()

Возвращает идентификатор алгоритма заливки.

Пример:

var myPolygon = new ymaps.Polygon([
        [[69, 45], [68, 55], [86, 56], [87, 43]],
        [[60, 48], [62, 60], [80, 62], [80, 48]]
    ]),
    middlePoint = [74, 52];

myMap.geoObjects.add(myPolygon);

// Проверка точки, приходящейся на пересечение двух контуров,
// по умолчанию (значение fillRule == 'evenOdd') образует вырез (дырку).
alert(myPolygon.geometry.contains(middlePoint)); // => false

// После задания значения 'nonZero', все пересечения также "закрашиваются",
// поэтому теперь точка входит в полигон.
myPolygon.geometry.setFillRule('nonZero');
alert(myPolygon.geometry.contains(middlePoint)); // => true

getLength

{Integer} getLength()

Возвращает количество контуров в геометрии.

insert

{IPolygonGeometryAccess} insert(index, path)

Добавляет новый контур с заданным индексом.

Возвращает ссылку на себя.

Параметры:

Параметр

Значение по умолчанию

Описание

index*

Тип: Integer

Индекс контура.

path*

Тип: Number[][]

Координаты контура.

* Обязательный параметр/опция.

remove

{ILinearRingGeometryAccess} remove(index)

Удаляет контур с заданным индексом.

Возвращает удаленный контур.

Параметры:

Параметр

Значение по умолчанию

Описание

index*

Тип: Integer

Индекс контура.

* Обязательный параметр/опция.

set

{IPolygonGeometryAccess} set(index, path)

Задает координаты контура c заданным индексом.

Возвращает ссылку на себя.

Параметры:

Параметр

Значение по умолчанию

Описание

index*

Тип: Integer

Индекс контура.

path*

Тип: Number[][]

Координаты контура.

* Обязательный параметр/опция.

setCoordinates

{IPolygonGeometryAccess} setCoordinates(coordinates)

Задает массив координат геометрии.

Возвращает ссылку на себя.

Параметры:

Параметр

Значение по умолчанию

Описание

coordinates*

Тип: Number[][][]

Координаты геометрии.

* Обязательный параметр/опция.

setFillRule

{IPolygonGeometryAccess} setFillRule(fillRule)

Задает алгоритм заливки многоугольника.

Возвращает ссылку на себя.

Параметры:

Параметр

Значение по умолчанию

Описание

fillRule*

Тип: String

Идентификатор алгоритма заливки.

* Обязательный параметр/опция.

splice

{ILinearRingGeometryAccess[]} splice(index, number)

Удаляет определенное число контуров начиная с заданного индекса. При этом на место удаляемых контуров могут быть добавлены новые. Координаты новых контуров можно передавать дополнительными аргументами после параметра number.

Возвращает удаленные контуры.

Параметры:

Параметр

Значение по умолчанию

Описание

index*

Тип: Integer

Индекс, начиная с которого производится удаление и добавление контуров.

number*

Тип: Integer

Количество удаляемых контуров.

* Обязательный параметр/опция.

Предыдущая
Следующая